乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 36|回复: 15

[编程交流] 如何获取属性信息

[复制链接]

2

主题

7

帖子

5

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 19:40:03 | 显示全部楼层 |阅读模式
我一直在开发一个lisp程序,该程序将更改一个或多个块上的一个或多个属性。但是,我希望能够将当前属性值添加到。然而,我无法一次获得多个块的属性值。例如,如果您有两个具有两个单独属性值(值而不是标记)的相同块,并且您同时拾取这两个值,则当您打开“属性”窗口时,它将列出相同的值(如果有),并将不同的值列为“varies”。有什么方法可以在autolisp中得到这个精确的东西吗?我使用的是香草Lisp程序不是视觉,任何帮助将不胜感激。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 19:47:07 | 显示全部楼层
从这里开始http://www.cadtutor.net/forum/showthread.php?37127-全局属性编辑器amp提取器和高亮显示=块+编辑
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 19:49:25 | 显示全部楼层
谢谢你的插拔
 
这些也可能有助于:
 
http://lee-mac.com/attributefunctions.html
回复

使用道具 举报

2

主题

7

帖子

5

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 19:55:47 | 显示全部楼层
感谢您的回复,但这些链接一次只能工作一个块(或者它们是visual lisp)。我有点希望能同时获得几个相同块的属性值。这将允许我告诉用户是否已经存在值,以及同一属性是否存在不同的值。然而,我可以让它工作,但它最终是大约100行文字。无论如何谢谢你
回复

使用道具 举报

55

主题

293

帖子

239

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-5 19:58:37 | 显示全部楼层
你试过“阿托”命令吗?
 
这真的很有帮助。
 
谢谢
回复

使用道具 举报

2

主题

7

帖子

5

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:03:57 | 显示全部楼层
我从来都不知道这个命令,很酷,但我认为我无法将其应用到我的程序中。我有点希望它在内部运行,并使用DCL编码显示它。当选择块时,ACAD已经在属性窗口的属性下显示了我想要的信息,我只需要一些方法来提取这些信息。有没有办法让lisp将选定对象的所有属性放入一个列表或字符串中,与ACAD显示的内容完全相同?
回复

使用道具 举报

3

主题

37

帖子

34

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 20:04:07 | 显示全部楼层
你试过数据提取吗?它会把它放在一个表中。
回复

使用道具 举报

55

主题

293

帖子

239

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-5 20:09:09 | 显示全部楼层
我正在使用塔瓦特先生制定的以下程序。
 
  1. ;;; This program is working almost as well as the Autocad command attout
  2. ;;; so I did this program to help people who do not have the Express tools
  3. ;;; to use my Autolisp Program instead.
  4. ;;; Hope this would help people as much as it is possible.
  5. ;;; Author *** THARWAT AL SHOUFI ***
  6. ;;; Date of creating the program November 17th. 2010
  7. ;;; Tested with Autocad 2010
  8. (defun c:THattout (/ Att fNme ents e)
  9. ; THARWAT Nov. 17.2010
  10. (prompt "\n Select Attributed Block: ")
  11. (if
  12.     (setq Att (ssget "_+.:S:L" '((0 . "INSERT")(66 . 1))))
  13.    (progn
  14.      (setq fNme
  15.         (open "D://attributes.txt" "w"))
  16.       (setq ents (ssname Att 0))
  17.        (write-line
  18.         (strcat "HANDLE" "\t" "BLOCKNAME" "\t" "\n"
  19.        (strcat "'" (cdr (assoc 5 (entget ents))))
  20.             "\t"
  21.               (cdr (assoc 2 (entget ents)))
  22.                 "\t")
  23.         fNme
  24.         )
  25.      (write-line
  26.         (strcat "\n" "TAG" "\t" "VALUE")
  27.         fNme
  28.         )
  29.      (while
  30.    (not
  31.      (eq
  32.        "SEQEND"
  33.            (cdr (assoc 0
  34.                  (setq e (entget (setq ents (entnext ents)))))
  35.             )
  36.        )
  37.      )
  38.             (write-line
  39.              (strcat (cdr (assoc 2 e))
  40.                "\t"
  41.                   (cdr (assoc 1 e)))
  42.          fNme
  43.          )
  44.      )
  45.      (close fNme)
  46.    )
  47. (princ "\n No Attributed Block Selected")
  48.    )
  49. (princ "\nWritten by Tharwat Al Shoufi")
  50. (princ)
  51. )

 
祝你好运
 
迈克尔
回复

使用道具 举报

2

主题

7

帖子

5

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:13:54 | 显示全部楼层
感谢您的帮助,最后一个很接近,但我开始假设我最初的假设是正确的,vanilla lisp无法显示和比较多个块的属性值。谢谢你的帮助,如果我发现了什么,我会毫不犹豫地把它发回这里。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 20:16:36 | 显示全部楼层
 
当然有——你只需要多想想。我发布的链接为单个块提供了属性子功能,但所使用的方法适用于任何数量的块,您只需以不同的方式构造代码。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-12 01:20 , Processed in 1.074483 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表