AutoCAD VBA对齐对象
AutoCAD VBA對(duì)齊對(duì)象,代碼如下。
Sub AlignEnt()
Dim ss As AcadSelectionSet
Set ss = CreateSelectionSet
ss.SelectOnScreen
Dim ent As AcadEntity
Dim MinPoint As Variant
Dim MaxPoint As Variant
If ss.Count > 0 Then
Dim AlignMode As String
On Error Resume Next
ThisDrawing.Utility.InitializeUserInput 0, "Left Middle Right"
AlignMode = ThisDrawing.Utility.GetKeyword("選擇對(duì)齊方式[左對(duì)齊(L)/對(duì)中(M)/右對(duì)齊(R)]<左對(duì)齊>:")
If Err Then AlignMode = "Left"
If AlignMode = "" Then AlignMode = "Left"
Dim AlignPoint As Variant
Dim MovePoint(2) As Double
AlignPoint = ThisDrawing.Utility.GetPoint(, "請(qǐng)選擇對(duì)起點(diǎn):")
For Each ent In ss
ent.GetBoundingBox MinPoint, MaxPoint
Select Case AlignMode
Case "Left"
MovePoint(0) = MinPoint(0)
MovePoint(1) = AlignPoint(2)
MovePoint(2) = MinPoint(2)
Case "Middle"
MovePoint(0) = (MinPoint(0) + MaxPoint(0)) / 2
MovePoint(1) = AlignPoint(1)
MovePoint(2) = MinPoint(2)
Case "Right"
MovePoint(0) = MaxPoint(0)
MovePoint(1) = AlignPoint(1)
MovePoint(2) = MaxPoint(2)
End Select
ent.Move MovePoint, AlignPoint
Update
Next
Else
ThisDrawing.Utility.Prompt vbCr & "未選定對(duì)象,自動(dòng)退出……"
End If
End Sub
Public Function CreateSelectionSet(Optional ssName As String = "ss") As AcadSelectionSet
Dim ss As AcadSelectionSet
On Error Resume Next
Set ss = ThisDrawing.SelectionSets(ssName)
If Err Then Set ss = ThisDrawing.SelectionSets.Add(ssName)
ss.Clear
Set creatselectionset = ss
End Function
代碼完。
運(yùn)行時(shí)提示“對(duì)象變量或with塊變量未設(shè)置”。
總結(jié)
以上是生活随笔為你收集整理的AutoCAD VBA对齐对象的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C#合并数组
- 下一篇: 双击word,excel等office文