Munters 发表于 2022-7-6 21:47:14

VBA-插入bl制成的块

我有一张公司要我自动绘制的图纸。我正在使用AutoCAD Electrical 2017,创建了一些包含2个或3个具有属性的块。我已经创建了几个表单来从用户那里获取信息,这些表单将决定在预先确定的插入点将哪些块插入到图形中。我的计划是在用户输入信息后,他们点击一个命令按钮,自动启动。插入块时,我计划使用星号插入分解的块,然后使用VBA代码将一个或两个属性(“TAG1”和“DESC1”)更改为预先确定的值。
 
简而言之,我试图收集信息,插入块,更改属性值,并在图形的其他地方更改一两行文本。请注意,AutoCAD Electrical提供了我将编辑值的块,因此我可以在图形上具有11个相同的块,并且所有块都具有不同的标记(TAG1)名称。如果有助于选择正确的块,我确实有一个插入点的x-y坐标列表。
 
提前感谢!

BIGAL 发表于 2022-7-6 22:33:12

这是VBA中的一段代码,它使用的方法是按保存的顺序检索属性,然后进行更新,例如选择一个点并将X和Y写入块。尝试将“Textstring”更改为“Tagstring”

Set SS = ThisDrawing.SelectionSets.Add("pit1sel")
SS.Select acSelectionSetAll, , , FilterDXFCode, FilterDXFVal

For Cntr = 0 To SS.Count - 1
If SS.Item(Cntr).Name = Blkname Then

attribs = SS.Item(Cntr).GetAttributes
      
    If attribs(0).TextString = pitname Then
      pt1 = ThisDrawing.Utility.GetPoint(, " pick first point")
      txtx1 = CStr(FormatNumber(pt1(0), 3))
      TXTY1 = CStr(FormatNumber(pt1(1), 3))
       attribs(1).TextString = txtx1
       attribs(2).TextString = TXTY1
      
       attribs(1).Update
       attribs(2).Update

       Cntr = SS.Count
   
    Else: End If
   
Else: End If

Munters 发表于 2022-7-6 23:05:18

谢谢我会试试的!
页: [1]
查看完整版本: VBA-插入bl制成的块