明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1337|回复: 2

[讨论]扩展数据删除,请帮忙测试?

[复制链接]
发表于 2009-7-17 09:55:00 | 显示全部楼层 |阅读模式
[LISP函数]:  

(defun GetAPP(ent / obj vtype xdata lst nn rtn)
;;功能:获取对象的应用名
(setq obj (vlax-ename->vla-object ent))
(vla-getxdata obj "" 'vtype 'xdata)
(if vtype
(progn
(setq vtype (vlax-safearray->list vtype)
xdata (vlax-safearray->list xdata))
(setq lst (allsyminlst 1001 vtype))
(setq rtn '() nn 0)
(repeat (length lst)
(setq ent (nth (nth nn lst) xdata) nn (1+ nn))
(setq rtn (cons (vlax-variant-value ent) rtn))
)
(setq rtn (reverse rtn))
)
)
rtn
)

(defun ALLSymInLst ( Sym Lst / nn rtn ent)
;;功能:返回所有sym在lst中的位置,从0开始,如果没有则返回nil
(setq rtn '() nn 0)
(repeat (length lst)
(setq ent (nth nn lst))
(if (= sym ent)
(setq rtn (cons nn rtn))
)
(setq nn (1+ nn))
)
(reverse rtn)
)

(defun Delapp(ent app / obj appstr Vtype Xdata Ntype Ndata);;待测试
;;功能:删除某个对象的应用名
;;说明:多个app 以(list app1 app2)的形式存在
(if (or (= app "*") (= app ""))
(setq app (getapp ent))
)
(if (= (type app) 'STR)
(setq app (list app))
)
(if (= (type ent) 'ENAME)
(setq obj (vlax-ename->vla-object ent) nn 0 rtn '())
(setq obj ent nn 0 rtn '())
)
(repeat (length app)
(setq appstr (nth nn app) nn (1+ nn))
(vla-getxdata obj appstr 'vtype 'xdata)
(if vtype
(progn
(setq ntype (vlax-make-safearray vlax-vbinteger '(0 . 0)))
(vlax-safearray-put-element ntype 0 (vlax-make-variant 1001 2))
(setq ndata (vlax-make-safearray 12 '(0 . 0)))
(vlax-safearray-put-element ndata 0 (vlax-make-variant appstr 8))
(vla-setxdata obj ntype ndata)
(setq rtn (cons (list appstr T) rtn))
)
(setq rtn (cons (list appstr nil) rtn))
)
)
(reverse rtn)
)

(defun c:tt();;test
(setq ss (ssget) nn 0 )
(repeat (sslength ss)
(setq ent (ssname ss nn) nn (1+ nn))
(print (delapp ent ""))
)
)

帮忙测试一下,为何选择一个对象,运行没有问题,如果一次选择了多个对象,就会出现错误?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2009-7-17 18:38:00 | 显示全部楼层
基本錯誤,主程序及副程序都用了nn,其他沒試
 楼主| 发表于 2009-7-17 19:10:00 | 显示全部楼层
好像不关NN的事吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-1 07:35 , Processed in 0.163741 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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