明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1836|回复: 7

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

[复制链接]
发表于 2004-10-4 01:19:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2004-10-4 2:24:54 编辑

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


如何 用setxdata 方法删除实体扩展数据?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2004-10-4 10:25:00 | 显示全部楼层
本帖最后由 作者 于 2004-10-4 11:06:45 编辑
  1. 如何 用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)
发表于 2004-10-4 12:04:00 | 显示全部楼层
我的方法去除 xdata (defun c:aa (/ en ed)
(setq en (car (entsel "\n请选择图元:")))
(setq ed (entget en))
(entdel en)
(entmake ed)
(princ)
) 简单不
 楼主| 发表于 2004-10-4 16:21:00 | 显示全部楼层
楼上的,这个方法我知道.只是前段讨论的viewport不能用entmod改扩展数据. alin,这个方法是"定式"(哈哈,围棋术语都出来了),我就是想看看连(1001),("MYAPP")都不要(为空数组)是否可以删除xdata.不过我对数组以前研究不多,所以集思广益.问问大家.
  1. 本例显示上例所附着的扩展数据。如果附着的扩展数据不是字符串(类型 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空数组参数来消除扩展数据?
发表于 2004-10-4 17:18:00 | 显示全部楼层
不能用 entmod ???
 楼主| 发表于 2004-10-4 18:25:00 | 显示全部楼层
是的请看entmod的帮助文件,里面有说明
发表于 2004-10-4 18:56:00 | 显示全部楼层
那么反过来,是不是可以通过setxdata空数组参数来消除扩展数据?

不行,必须指定1001码 你的目的是?
 楼主| 发表于 2004-10-4 20:24:00 | 显示全部楼层
"你的目的是?"


------"没有驻牙!!!"
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-23 03:01 , Processed in 0.183634 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表