Тема: Как сделать фаску?
Подскажите, какой командой можно сделать фаску на VB?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Как сделать фаску?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Подскажите, какой командой можно сделать фаску на VB?
> Алексей
Фаску чего: двух линий или полилинию?
Тут разные подходы, если полилинию полностью
(все углы) или 2 линии тогда проще через Sendcommand
а если один угол полилинии, тут надо вычислять
новые вершины
~'J'~
> Алексей
Пример для фаски двух линий
Option Explicit '' Chamfer two lines ''~~~~~~~~~~ Code end ~~~~~~~~~~'' Sub ChamferLinesExample() Dim objLine1 As AcadLine Dim objLine2 As AcadLine Dim varPt1 As Variant Dim varPt2 As Variant Dim dblChamfA, dblChamfB, newSysVarA, newSysVarB As Double Dim strChamfA, strChamfB, comString As String dblChamfA = ThisDrawing.GetVariable("CHAMFERA") dblChamfB = ThisDrawing.GetVariable("CHAMFERB") On Error GoTo ProblemHere strChamfA = InputBox("Specify first chamfer distance:", "Chamfer Distance Value #1") newSysVarA = CDbl(strChamfA) strChamfB = InputBox("Specify second chamfer distance or" & vbNewLine _ & "press enter to set by first", _ "Chamfer Distance Value #2", CStr(newSysVarA)) newSysVarB = CDbl(strChamfB) Debug.Print newSysVarB ThisDrawing.Utility.GetEntity objLine1, varPt1, "Select first line" ThisDrawing.Utility.GetEntity objLine2, varPt2, "Select second line" If objLine1 Is Nothing Or objLine2 Is Nothing Then Exit Sub Else If TypeOf objLine1 Is AcadLine And TypeOf objLine2 Is AcadLine Then ThisDrawing.SetVariable "CHAMFERA", newSysVarA ThisDrawing.SetVariable "CHAMFERB", newSysVarB comString = "_CHAMFER" & vbCr & "(HANDENT " & Chr(34) & CStr(objLine1.Handle) & Chr(34) & ")" & vbCr & _ "(HANDENT " & Chr(34) & CStr(objLine2.Handle) & Chr(34) & ")" & vbCr ThisDrawing.SendCommand comString Else MsgBox "Incorrect object type" Exit Sub End If End If ThisDrawing.SetVariable "CHAMFERA", dblChamfA ThisDrawing.SetVariable "CHAMFERB", dblChamfB Exit_Here: ProblemHere: If Err Then ThisDrawing.SetVariable "CHAMFERA", dblChamfA ThisDrawing.SetVariable "CHAMFERB", dblChamfB MsgBox vbCr & Err.Description End If End Sub ''~~~~~~~~~~ Code end ~~~~~~~~~~'' ~'J'~
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Как сделать фаску?
Форум работает на PunBB, при поддержке Informer Technologies, Inc