乐筑天下

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

[编程交流] 属性编辑

[复制链接]

12

主题

57

帖子

45

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 08:43:31 | 显示全部楼层 |阅读模式
大家好,
 
我确实搜索了论坛,发现了许多lisp的想法,并试图修改以满足我的需要,但没有什么结果像我想的那样。所以我会尽力解释我的需要。
 
我用一个有两个布局的模板开始绘图。一个有一个大标题栏,另一个有一个小标题栏。(参考“A”“B”的块名)。两者都是具有属性的块。所有标记都相同,只是块名称不同。当图纸签署时,我用签名名称更新标题栏,删除“供批准”,有时反之亦然。
 
我想热键,添加一个名称,以“检查”和删除“审批”从stauts。
 
然后,另一个命令将名称从“检查”中删除,并将“供批准”添加到状态。
 
例如属性
block name“A”tag“checked”value“name here”
块名称“B”标记“选中”值“此处的名称”
 
块名称“A”标签“状态”值“供批准”
块名称“B”标签“状态”值“供批准”
 
我已经写了一个lisp使用的代码,我在这个网站上找到了它的作品ok。
 
但也存在一些问题:
我可以在两个块上使用相同的命令吗?(每个标题栏不写一个。
2、当我需要取消审批图纸时,我需要删除名称,无论名称是什么。(意思是我写的代码,我必须为每个可能签署图纸的人写一个代码)。
 
感谢您的帮助,代码如下:
 
  1. (defun c:commandname ()
  2. (command "attedit" "_N" "_N" "blockname" "tag" "*" "old value" "new value")
  3. (command "attedit" "_N" "_N" "blockname" "tag" "*" "old value" "new value")
  4. (graphscr)
  5. (princ)
  6. );end defun
  7. ;Ex with tags
  8. (defun c:name ()
  9. (command "attedit" "_N" "_N" "titleb" "checked" "*" "" "approved by name")
  10. (command "attedit" "_N" "_N" "titleb" "status" "*" "FOR APPROVAL" "")
  11. (graphscr)
  12. (princ)
  13. );end defun
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:04:44 | 显示全部楼层
假设块不是动态的,请尝试以下操作:
 
  1. (defun c:addname ( / ss name data i )
  2.    (if (setq ss (ssget "_X" '((0 . "INSERT") (66 . 1) (2 . "A,B"))))
  3.        (progn
  4.            (setq name (getstring t "\nSpecify Name: "))
  5.            (setq data
  6.                (list
  7.                    (cons "CHECKED" name)
  8.                   '("STATUS" . "")
  9.                )
  10.            )                  
  11.            (repeat (setq i (sslength ss))
  12.                (LM:SetAttributeValues (ssname ss (setq i (1- i))) data)
  13.            )
  14.        )
  15.    )
  16.    (princ)
  17. )
  18. (defun c:forapproval ( / ss data i )
  19.    (if (setq ss (ssget "_X" '((0 . "INSERT") (66 . 1) (2 . "A,B"))))
  20.        (progn
  21.            (setq data
  22.               '(
  23.                    ("CHECKED" . "")
  24.                    ("STATUS" . "FOR APPROVAL")
  25.                )
  26.            )                  
  27.            (repeat (setq i (sslength ss))
  28.                (LM:SetAttributeValues (ssname ss (setq i (1- i))) data)
  29.            )
  30.        )
  31.    )
  32.    (princ)
  33. )
  34. ;; Set Attribute Values  -  Lee Mac
  35. ;; Sets the block attributes whose tags are found in the supplied
  36. ;; association list to their associated values.
  37. (defun LM:SetAttributeValues ( block lst / elist item )
  38.    (if
  39.        (eq "ATTRIB"
  40.            (cdr
  41.                (assoc 0
  42.                    (setq elist
  43.                        (entget (setq block (entnext block)))
  44.                    )
  45.                )
  46.            )
  47.        )
  48.        (if (setq item (assoc (strcase (cdr (assoc 2 elist))) lst))
  49.            (progn
  50.                (if (setq elist (entmod (subst (cons 1 (cdr item)) (assoc 1 elist) elist)))
  51.                    (entupd (cdr (assoc -1 elist)))
  52.                )
  53.                (LM:SetAttributeValues block lst)
  54.            )
  55.            (LM:SetAttributeValues block lst)
  56.        )
  57.    )
  58. )

 
您可能还对这些函数感兴趣。
回复

使用道具 举报

12

主题

57

帖子

45

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 09:17:33 | 显示全部楼层
你就是李。谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:28:21 | 显示全部楼层
不客气,布拉德。
 
我试图设置这些函数,以便可以轻松修改它们,而不需要知道“LM:setAttributeValue”函数的具体工作原理,但只需要知道它需要一个格式正确的标签和值列表。
 
如果您对如何修改代码有任何疑问,请提问。
 
回复

使用道具 举报

12

主题

57

帖子

45

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 09:37:08 | 显示全部楼层
我只是做了一些简单的修改
 
更改块名称
将getstring更改为调用变量,发出短命令,在其中键入签名的首字母,然后它调用addname。
 
非常好,再次感谢。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:50:53 | 显示全部楼层
好东西
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 08:15 , Processed in 0.880966 second(s), 64 queries .

© 2020-2025 乐筑天下

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