乐筑天下

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

[编程交流] 需要Lisp更新属性

[复制链接]

11

主题

48

帖子

40

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
54
发表于 2022-7-6 15:11:38 | 显示全部楼层 |阅读模式
我需要一个lisp例程,它将执行以下操作。。。
1) 单击具有2个属性的块:
节点ID
AMP\U ID
2) 单击另一个块以更新2个属性:
NODE\u ID(这应该等于第一个块的NODE\u ID)
设备编号(这应该等于第一个块的AMP\U ID)
 
谢谢你的帮助!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:27:10 | 显示全部楼层
哈哈,你和你的街区。。。
 
您希望第二个选项用于多个区块吗?还是自动化?或者你宁愿只是一个简单的点击两下的工作
回复

使用道具 举报

11

主题

48

帖子

40

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
54
发表于 2022-7-6 15:44:59 | 显示全部楼层
对又是我。我这个大项目就要完成了。
我需要一次选择多个目标区块。
 
再次感谢你的帮助。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:57:12 | 显示全部楼层
快速编写且未经测试!
 
  1. (defun c:blkupd     (/ bEnt aEnt eLst aNode aAmp ss EntLst attEnt attEntLst)
  2. (if (and (setq bEnt (car (entsel "\nSelect Block to Retrieve Attribute Values >   ")))
  3.       (= "INSERT" (cdadr (entget bEnt))) (= 1 (cdr (assoc 66 (entget bEnt)))))
  4.    (progn
  5.      (setq aEnt (entnext bEnt))
  6.      (while (= "ATTRIB" (cdadr (setq eLst (entget aEnt))))
  7.    (cond ((= "NODE_ID" (cdr (assoc 2 eLst)))
  8.           (setq aNode (cdr (assoc 1 eLst))))
  9.          ((= "AMP_ID" (cdr (assoc 2 eLst)))
  10.           (setq aAmp (cdr (assoc 1 eLst)))))
  11.    (setq aEnt (entnext aEnt)))
  12.      (if (and aNode aAmp)
  13.    (progn
  14.      (if (setq ss (ssget (list (cons 0 "INSERT")(cons 66 1)
  15.        (if    (getvar "CTAB")(cons 410 (getvar "CTAB")) (cons 67 (- 1 (getvar "TILEMODE")))))))
  16.        (progn
  17.          (setq EntLst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
  18.          (foreach e  EntLst
  19.        (setq attEnt (entnext e))
  20.        (while (= "ATTRIB" (cdadr (setq attEntLst (entget attEnt))))
  21.          (cond    ((= "NODE_ID" (cdr (assoc 2 attEntLst)))
  22.             (entmod (subst (cons 1 aNode) (assoc 1 attEntLst) attEntLst)))
  23.            ((= "DEVICE_NUMBER" (cdr (assoc 2 attEntLst)))
  24.             (entmod (subst (cons 1 aAmp) (assoc 1 attEntLst) attEntLst))))
  25.          (setq attEnt (entnext attEnt)))))
  26.        (princ "\n<!> No Blocks Selected <!>")))
  27.    (princ "\n<!> Selected Block Doesn't Contain Required Attributes <!> ")))
  28.    (princ "\n<!> No Block Selected <!>"))
  29. (command "_regenall")
  30. (princ))
回复

使用道具 举报

11

主题

48

帖子

40

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
54
发表于 2022-7-6 16:05:11 | 显示全部楼层
你又做了一次!
再次感谢你的帮助。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:23:33 | 显示全部楼层
没有问题
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 20:09 , Processed in 0.458255 second(s), 64 queries .

© 2020-2025 乐筑天下

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