用户定义/嵌入/搜索
有没有办法在维度属性中嵌入用户定义的标记,稍后可以使用LISP例程进行搜索?最终目标是将这些令牌导出到excel,从而令牌值将确定其与其他维度的关联,并根据它们在电子表格中的关系放置。如能对我的想法给予任何帮助/确认,将不胜感激。 欢迎来到论坛我建议您在任务中使用扩展数据,可以在此处找到参考:
http://docs.autodesk.com/ACD/2011/ENU/filesDXF/WS1a9193826455f5ff18cb41610ec0a2e719-7943.htm
扩展数据可以附加到所有图形实体,也可以附加到非图形实体。 Thnx的参考资料-我只是有点流利的LISP和基本编码,但如果我理解的概念正确。。。扩展数据定义将隐藏我的令牌以建立关系。因此,后续的LISP例程必须引用该数据类型。然后,LISP例程可以根据需要的格式将预过滤数据自动导出到excel。
听起来您有了基本想法-使用扩展数据的优点是,扩展数据AppID可以在ssget表达式中使用,以仅收集您在该AppID下分配了扩展数据的那些对象,例如:
(ssget "_X" '((-3 ("YourAppID"))))
将收集扩展数据AppID为“YourAppID”的所有对象的选择集。
下面是另一个帮助教程:
http://www.afralisp.net/autolisp/tutorials/extended-entity-data-part-1.php 当我遵循您参考中的教程时,由于某种原因,我无法“创建我们要添加到实体的exdata”,而不会得到类似(_>
如果我继续学习本教程,那么似乎所有将扩展数据附加到对象的努力都不会被附加。
我的线实体数据与预期结果略有不同。这可能是问题所在,还是我遗漏了什么?
这只是意味着您缺少一个右括号-“”,教程中可能有错误。
下面是一个示例,演示如何将扩展数据(本例中为简单字符串)添加到选定实体:
(defun c:test ( / en )
(if (setq en (car (entsel)))
(progn
(if (null (tblsearch "APPID" "MyAppID"))
(regapp "MyAppID")
)
(entmod (list (cons -1 en) '(-3 ("MyAppID" (1000 . "This is a test")))))
)
)
(princ)
)
注意,该示例没有测试实体是否已经包含扩展数据,这可能需要另一个简单的条件;尽管对同一实体的重复应用只会覆盖现有的相同扩展数据。
您可能会发现我的EntityList developer实用程序在这项任务中很有帮助。
页:
[1]