Тема: Как сделать фаску?

Подскажите, какой командой можно сделать фаску на VB?

Re: Как сделать фаску?

> Алексей
Фаску чего: двух линий или полилинию?
Тут разные подходы, если полилинию полностью
(все углы) или 2 линии тогда проще через Sendcommand
а если один угол полилинии, тут надо вычислять
новые вершины
~'J'~

Re: Как сделать фаску?

> Алексей
Пример для фаски двух линий

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'~

Re: Как сделать фаску?

Спасибо, разобрался!

Re: Как сделать фаску?

> Алексей
Успехов,
~'J'~