找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1214|回复: 0

[他山之石] 使用LISP过滤指定的扩展数据XDATA

[复制链接]
发表于 2013-11-24 18:19:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Using AutoLISP to filter specific extended entity xdata
Issue
How do I create a selection set filter in AutoLISP for a specific xdata value ?

Solution
A wiki help introduces in details on how to manipulate xdata by LISP:
Following is a small code demo. It assumes some entities have been added the xdata named “TEST_APP”. The code wants to filter the entities with the xdata and the data contains one value whose type is 1070 and value is 44.

(defun GetSpecificXdata (appName XdataType XdataValue / ss1 ssr indx sl entLst
theXdata i xl xdatav xdatal)
(setq ss1 (ssget "X" (list (cons -
3 (list (list appName))))))
(if ss1
   (progn
     (setq ssr (ssadd))
     (setq indx 0 sl (sslength ss1))
     (princ (strcat "\nOriginal Xdata Selection Set Length: " (itoasl)))
     (while (< indx sl)

    (setq entLst (entget (ssname ss1 indx) (list appName)))
    (setq theXdata (cdr (assoc '-3 entLst)))
    (setq  i 0 xl (length (setq xdatal (car theXdata))))
    (while (< i xl)
        (if (= (type (setq xdatav (car xdatal))) 'LIST)
         (if (= (car xdatav) XdataType)
              (if (= (cdr xdatav) XdataValue)
               (ssadd (ssname ss1 indx) ssr)
              )
         )
        )
        (setq i (1+ i) xdatal (cdr xdatal) )  
      )
      (setq indx (1+ indx))
    )
   )
)
ssr
)
  
(defun TestXdataSelection (/ ss2)
(setq ss2 (GetSpecificXdata "TEST_APP" 1070  44))
(if ss2
     (progn
    (princ (strcat "\nSearched for Application: " "TEST_APP" ",
XData Type: " (itoa 1070) ", XData Value: " (itoa 44)))
    (princ (strcat "\nResultant Selection Set Length: " (itoa (sslength
ss2))))
     )
)
(princ)
)

(princ "\nTestXdataSelection loaded, type (TestXdataSelection) to run.")
(princ)



论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 09:09 , Processed in 0.219738 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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