spirit_sw 发表于 2004-12-16 18:01:00

如何用VBA修改图块(block)的属性?

在lisp中我可以用subst、entmod两个函数修改块的属性,比如块名什么的。但在VBA中该如何实现呢?请大家帮忙啊,十万火急。我这有用CASS成的图,但单位要把这些图改成自己开发的一套系统中,此系统与CASS系统图块名不一样,现在我要把他们改过来,该怎么办啊?

mccad 发表于 2004-12-16 20:55:00

如果块未插入,则可以直接用.Name属性来改名称。

spirit_sw 发表于 2004-12-22 12:11:00

块都插入了,怎么修改啊?.NAME属性好象不能修改的。另外如何建立块选择集呢?建立好了如何一个个提起,查看单个块属性呢?(诸如插入点、缩放比例、块名等)有没有实例呢?谢谢了

klydp 发表于 2004-12-22 15:03:00

就是,如何选择已插入的块,然后再旋转、移动啊?

arden 发表于 2004-12-22 20:59:00

俺也想知道包括如何读取块的属性。

雪山飞狐_lzh 发表于 2004-12-22 21:32:00

先读取所有得块参照的属性,存入数组,再更改块名,然后读取数组中的数据重生成

spirit_sw 发表于 2004-12-24 12:34:00

说的容易,怎么操作呢?有具体的实例吗?我真的很急啊,谢谢了

CLARKLEE 发表于 2004-12-24 17:23:00

'========如果有属性修改任务=========<BR>                       '===================================<BR>                       '===================================<BR>                       DoEvents<BR>                       fileright = False<BR>                       If Check7.Value = 1 Then<BR>                                                       If dwgfile.ActiveSpace = acModelSpace Then<BR>                                                                                                       For Each obj In dwgfile.ModelSpace<BR>                                                                                                                                                       cadmessage.Label7.Caption = "正在进行属性修改: 查找目标块块 " &amp; mainblock &amp; " 当前 " &amp; obj.ObjectName<BR>                       <BR>                                                                                                                                                       If obj.ObjectName = "AcDbBlockReference" Then<BR>                                                                                                                                                                                       If obj.Name = mainblock Then<BR>                                                                                                                                                                                       fileright = True<BR>                                                                                                                                                                                       cadmessage.Label7.Caption = "正在进行属性修改: 已找到       " &amp; mainblock &amp; " 当前正属性修改中。。。"<BR>                                                                                                                                                                                       objatts = obj.GetAttributes<BR>                                                                                                                                                                                       For m = LBound(objatts) To UBound(objatts)<BR>                                                                                                                                                                                                                       For n = 0 To Combo6.ListCount - 1<BR>                                                                                                                                                                                                                       If objatts(m).TagString = Combo6.List(n) Then<BR>                                                                                                                                                                                                                                                       If Combo8.List(n) &lt;&gt; "" Then<BR>                                                                                                                                                                                                                                                                                       If Combo8.List(n) = "null" Or Combo8.List(n) = "NULL" Then<BR>                                                                                                                                                                                                                                                                                                                       objatts(m).TextString = ""<BR>                                                                                                                                                                                                                                                                                                                       Exit For<BR>                                                                                                                                                                                                                                                                                       Else<BR>                                                                                                                                                                                                                                                                                       objatts(m).TextString = Combo8.List(n)<BR>                                                                                                                                                                                                                                                                                       Exit For<BR>                                                                                                                                                                                                                                                                                       End If<BR>                                                                                                                                                                                                                                                       End If<BR>                                                                                                                                                                                                                       End If<BR>                                                                                                                                                                                                                       Next n<BR>                                                                                                                                                                                       Next m<BR>                                                                                                                                                                                       End If<BR>                                                                                                                                                       End If<BR>                                                                                                                       Next obj<BR>                                                       End If<BR>                                                       <BR>                                                       <BR>                                                       If dwgfile.ActiveSpace = acPaperSpace Then<BR>                                                                                                       For Each obj In dwgfile.PaperSpace<BR>                                                                                                                                                       cadmessage.Label7.Caption = "正在进行属性修改: 查找目标块块 " &amp; mainblock &amp; " 当前 " &amp; obj.ObjectName<BR>                                                                                                                                                       If obj.ObjectName = "AcDbBlockReference" Then<BR>                                                                                                                                                                                       If obj.Name = mainblock Then<BR>                                                                                                                                                                                       fileright = True<BR>                                                                                                                                                                                       cadmessage.Label7.Caption = "正在进行属性修改: 已找到       " &amp; mainblock &amp; " 当前正属性修改中。。。"<BR>                                                                                                                                                                                       objatts = obj.GetAttributes<BR>                                                                                                                                                                                       For m = LBound(objatts) To UBound(objatts)<BR>                                                                                                                                                                                                                       For n = 0 To Combo6.ListCount - 1<BR>                                                                                                                                                                                                                       If objatts(m).TagString = Combo6.List(n) Then<BR>                                                                                                                                                                                                                                                       If Combo8.List(n) &lt;&gt; "" Then<BR>                                                                                                                                                                                                                                                       If Combo8.List(n) = "null" Or Combo8.List(n) = "NULL" Then<BR>                                                                                                                                                                                                                                                       objatts(m).TextString = ""<BR>                                                                                                                                                                                                                                                       Else<BR>                                                                                                                                                                                                                                                       objatts(m).TextString = Combo8.List(n)<BR>                                                                                                                                                                                                                                                       End If<BR>                                                                                                                                                                                                                                                       End If<BR>                                                                                                                                                                                                                       End If<BR>                                                                                                                                                                                                                       Next n<BR>                                                                                                                                                                                       Next m<BR>                                                                                                                                                                                       End If<BR>                                                                                                                                                       End If<BR>                                                                                                                       Next obj<BR>                                                       End If<BR>                       End If

spirit_sw 发表于 2004-12-27 16:34:00

谢谢先,我试试看
页: [1]
查看完整版本: 如何用VBA修改图块(block)的属性?