无痕 发表于 2004-10-4 01:19:00

如何制作一个"空"的数组?

本帖最后由 作者 于 2004-10-4 2:24:54 编辑

如何制作一个"空"的数组?


如何 用setxdata 方法删除实体扩展数据?

alin 发表于 2004-10-4 10:25:00

本帖最后由 作者 于 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)

spring 发表于 2004-10-4 12:04:00

我的方法去除 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>)


简单不

无痕 发表于 2004-10-4 16:21:00

楼上的,这个方法我知道.只是前段讨论的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空数组参数来消除扩展数据?

spring 发表于 2004-10-4 17:18:00

不能用 entmod ???

无痕 发表于 2004-10-4 18:25:00

是的请看entmod的帮助文件,里面有说明

雪山飞狐_lzh 发表于 2004-10-4 18:56:00

那么反过来,是不是可以通过setxdata空数组参数来消除扩展数据?<BR>不行,必须指定1001码


你的目的是?

无痕 发表于 2004-10-4 20:24:00

"你的目的是?"


------"没有驻牙!!!"
页: [1]
查看完整版本: 如何制作一个"空"的数组?