如何制作一个"空"的数组?
本帖最后由 作者 于 2004-10-4 2:24:54 编辑如何制作一个"空"的数组?
如何 用setxdata 方法删除实体扩展数据? 本帖最后由 作者 于 2004-10-4 11:06:45 编辑
如何 用setxdata 方法删除实体扩展数据?好像不用设为“空”数组,这样便行(setq newdtype (vlax-make-safearray vlax-vbinteger '(0 . 0)))
(setq newdvalue (vlax-make-safearray vlax-vbVariant '(0 . 0)))
(vlax-safearray-fill newdtype '(1001))
(vlax-safearray-fill newdvalue '("MYAPP"))
(vla-setxdata obj newdtype newdvalue) 我的方法去除 xdata
(defun c:aa (/ en ed)<BR> (setq en (car (entsel "\n请选择图元:")))<BR> (setq ed (entget en))<BR> (entdel en)<BR> (entmake ed)<BR> (princ)<BR>)
简单不 楼上的,这个方法我知道.只是前段讨论的viewport不能用entmod改扩展数据. alin,这个方法是"定式"(哈哈,围棋术语都出来了),我就是想看看连(1001),("MYAPP")都不要(为空数组)是否可以删除xdata.不过我对数组以前研究不多,所以集思广益.问问大家.本例显示上例所附着的扩展数据。如果附着的扩展数据不是字符串(类型 1000)类型,则需要修改此代码。 Sub Ch10_ViewXData() ' 查找上例中创建的选择集 Dim sset As Object Set sset = ThisDrawing.SelectionSets.Item("SS1") ' 定义扩展数据变量以保存扩展数据信息 Dim xdataType As Variant Dim xdata As Variant Dim xd As Variant '定义索引计数器 Dim xdi As Integer xdi = 0 ' 遍历选择集中的对象 ' 并检索对象的扩展数据 Dim msgstr As String Dim appName As String Dim ent As AcadEntity appName = "MY_APP" For Each ent In sset msgstr = "" xdi = 0 ' 检索 appName 扩展数据类型和值 ent.GetXData appName, xdataType, xdata ' 如果未初始化 xdataType 变量, ' 则没有可供该图元检索的 appName 扩展数据 If VarType(xdataType) <> vbEmpty Then For Each xd In xdata msgstr = msgstr & vbCrLf & xdataType(xdi) _ & ": " & xd xdi = xdi + 1 Next xd End If ' 如果 msgstr 变量为 NULL,则没有扩展数据 If msgstr = "" Then msgstr = vbCrLf & "NONE" MsgBox appName & " xdata on " & ent.ObjectName & _ ":" & vbCrLf & msgstr Next entEnd Sub看这句:' 如果 msgstr 变量为 NULL,则没有扩展数据.那么反过来,是不是可以通过setxdata空数组参数来消除扩展数据?
不能用 entmod ??? 是的请看entmod的帮助文件,里面有说明 那么反过来,是不是可以通过setxdata空数组参数来消除扩展数据?<BR>不行,必须指定1001码
你的目的是? "你的目的是?"
------"没有驻牙!!!"
页:
[1]