当前位置:你问我答 >  详情

【AutoCAD二次开发】第六节 块操作

Windows10
其他
CASS9
'第六节 块操作
Sub InsertBlock() '插入块
   Dim xy(2) As Double
   xy(0) = 100: xy(1) = 200: xy(2) = 300
   ThisDrawing.Application.ActiveDocument.ModelSpace.InsertBlock xy, _
   "C:\Documents and Settings\Administrator\桌面\abc.dwg", 1, 1, 1, 0
End Sub
Sub BlockProperties() '高程点加常数
    Dim objBlock As AcadBlockReference
    Dim sSet As AcadSelectionSet
    Dim intCnt As Integer
    Dim mType(2) As Integer, mData(2) As Variant
    Dim xyz(2) As Double
    Dim varAttributes As Variant
    intCnt = ThisDrawing.SelectionSets.Count
    While (intCnt > 0)
       Set sSet = ThisDrawing.SelectionSets.Item(intCnt - 1)
       sSet.Delete
       intCnt = intCn0t - 1
    Wend
    mType(0) = 0: mData(0) = "INSERT"
    mType(1) = 8: mData(1) = "GCD"
    mType(2) = 2: mData(2) = "GC200"
    Set sSet = ThisDrawing.SelectionSets.Add("GCD")
    sSet.Select acSelectionSetAll, , , mType, mData
    If sSet.Count > 0 Then
       For Each objBlock In sSet
           xyz(0) = objBlock.insertionPoint(0)
           xyz(1) = objBlock.insertionPoint(1)
           xyz(2) = objBlock.insertionPoint(2) + 50
           objBlock.insertionPoint = xyz '修改高程点的高程值
           varAttributes = objBlock.GetAttributes '获得高程点的块属性
           varAttributes(0).TextString = xyz(2) '修改块属性为新的高程值
       Next
    End If
    sSet.Delete
End Sub

全部评论

等级:LV30
积分:74546
hkai2658 2019-12-21 09:50
👍 👍
回复 0
等级:LV2
积分:30
张振川 2019-12-30 09:00
厉害
回复 0
等级:LV2
积分:30
张振川 2020-01-10 15:25

intCnt = intCn0t - 1老哥。这里是不是错了。inicnt=inicnt-1

回复 0
AcadApp呵呵,粘贴时多了个0,这都被你发现了,哈哈
2020-01-10 21:07:56
张振川老哥,我加您qq您同意一下呀。想跟着您学习
2020-01-13 09:25:20
1

提交
悬赏回复规则
1、悬赏期为24小时,从发布时间起算;
2、悬赏期内提问者如设置评论为“精选评论”,视为悬赏结束,该精选评论人将获得本题全部悬赏积分;
3、悬赏期内如提问者未设置“精选评论”,则前5位评论者平分悬赏积分(如仅有一位评论,该评论者获得50%悬赏积分);
4、悬赏积分会自动发放到生态圈账户中,请留意站内信通知。
知道了

距离打开宝箱还剩7

是否花费200积分补签?
确认
取消