乐筑天下

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

[编程交流] LISP例程请求

[复制链接]

48

主题

1073

帖子

1043

银币

后起之秀

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

铜币
238
发表于 2022-7-6 10:47:17 | 显示全部楼层 |阅读模式
我目前正在努力使用AutoCAD electrical,尝试使用自动导线编号来完成我希望它完成的任务。我现在已经放弃了,决定用Lisp程序的语言做我想做的事(现在)。有人能帮我凑点东西给我老板看看吗?
 
我只需要用一些现有属性的串联来填充我的两个新属性。易于理解的
 
属性F-Term01=Tag1&“-”&Term01
属性F-Term02=Tag1&“-”&Term02
 
现在,一个简单的“选择块”就可以了,但当我开始做更多的学习时,这种可能性会增加。
 
非常感谢,但如果有人能帮我做这件事,我就不喝啤酒了。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:51:54 | 显示全部楼层
戴夫,
 
我相信这可以很快完成,当我一分钟后-但我不确定我是否理解你的符号在那里。。。
 
我说得对吗
 
属性标签=F-Term01
 
值需要为:-Term01
 
对的
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

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

铜币
238
发表于 2022-7-6 10:55:35 | 显示全部楼层
对不起,我今天晚上试图关机时正在打字
 
不急,我明天才能看,但是。。。
 
我需要将名为“TAG1”的属性值和一个破折号以及名为“TERM01”的属性值放入名为“F-TERM01”的属性中
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:57:52 | 显示全部楼层
 
  1. (defun c:TEst (/ o)
  2. (if (setq o (car (entsel "\nSelect block: ")))
  3.    (if (eq (vla-get-objectname (setq o (vlax-ename->vla-object o)))
  4.            "AcDbBlockReference"
  5.        )
  6.      (if (eq (vla-get-hasattributes o) :vlax-true)
  7.        (foreach a (vlax-invoke o 'GetAttributes)
  8.          ((lambda (s)
  9. ;;;         (vla-put-textstring a (strcat s "=" (substr s 3)))
  10.             (cond
  11.               ((eq (strcase s) "TAG1") (vla-put-textstring a "-"))
  12.               ((eq (strcase s) "TERM01")
  13.                (vla-put-textstring a "F-Term01")
  14.               )
  15.             )
  16.           )
  17.            (vla-get-tagstring a)
  18.          )
  19.        )
  20.        (princ "\nBlock has no attributes!")
  21.      )
  22.      (princ "\nObject must be a block!")
  23.    )
  24. )
  25. (princ)
  26. )
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

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

铜币
238
发表于 2022-7-6 11:02:24 | 显示全部楼层
谢谢艾伦。我想知道你们俩谁会是第一个。
 
我明天上班时会试试看。
 
哦,顺便问一下,你发现最初的请求是2个属性了吗。F-Term01和F-Term02。我相信我能想出如何添加它,但你介意帮我添加吗,pplleeaassee。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:04:02 | 显示全部楼层
没问题。我有几分钟空闲时间等待午餐的到来。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:07:59 | 显示全部楼层
试一试Dave:
 
  1. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:Dave [b][color=RED]([/color][/b] [b][color=BLUE]/[/color][/b] ent atts tag1 [b][color=RED])[/color][/b]
  2. [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
  3. [i][color=#990099];; Lee Mac  ~  18.05.10[/color][/i]
  4. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b]
  5.    [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ent
  6.      [b][color=RED]([/color][/b]SelectifFoo
  7.        [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b] x [b][color=RED])[/color][/b]
  8.          [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b]
  9.            [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#a52a2a]"INSERT"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]0[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entget[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  10.            [b][color=RED]([/color][/b][b][color=BLUE]=[/color][/b] [b][color=#009900]1[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]66[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entget[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  11.          [b][color=RED])[/color][/b]
  12.        [b][color=RED])[/color][/b]
  13.        [b][color=#a52a2a]"\nSelect Block to Update: "[/color][/b]
  14.      [b][color=RED])[/color][/b]
  15.    [b][color=RED])[/color][/b]
  16.    [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
  17.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] atts
  18.        [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
  19.          [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
  20.            [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b] attrib [b][color=RED])[/color][/b]
  21.              [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b]
  22.                [b][color=RED]([/color][/b][b][color=BLUE]strcase[/color][/b]
  23.                  [b][color=RED]([/color][/b][b][color=BLUE]vla-get-TagString[/color][/b] attrib[b][color=RED])[/color][/b]
  24.                [b][color=RED])[/color][/b]
  25.                attrib
  26.              [b][color=RED])[/color][/b]
  27.            [b][color=RED])[/color][/b]
  28.          [b][color=RED])[/color][/b]
  29.          [b][color=RED]([/color][/b][b][color=BLUE]vlax-invoke[/color][/b]
  30.            [b][color=RED]([/color][/b][b][color=BLUE]vlax-ename->vla-object[/color][/b] ent[b][color=RED])[/color][/b] [b][color=DARKRED]'[/color][/b]GetAttributes
  31.          [b][color=RED])[/color][/b]
  32.        [b][color=RED])[/color][/b]
  33.      [b][color=RED])[/color][/b]
  34.      [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] tag1 [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#a52a2a]"TAG1"[/color][/b] atts[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  35.               [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] tag1 [b][color=RED]([/color][/b][b][color=BLUE]vla-get-TextString[/color][/b] tag1[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  36.        [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
  37.          [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
  38.            [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b] stag dtag [b][color=RED])[/color][/b]
  39.              [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] x [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] stag atts[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  40.                       [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] y [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] dtag atts[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  41.                [b][color=RED]([/color][/b][b][color=BLUE]vla-put-TextString[/color][/b] y                  
  42.                  [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] tag1 [b][color=#a52a2a]"-"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-TextString[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  43.                [b][color=RED])[/color][/b]
  44.              [b][color=RED])[/color][/b]
  45.            [b][color=RED])[/color][/b]
  46.          [b][color=RED])[/color][/b]
  47.          [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b]  [b][color=#a52a2a]"TERM01"[/color][/b]   [b][color=#a52a2a]"TERM02"[/color][/b][b][color=RED])[/color][/b]
  48.          [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#a52a2a]"F-TERM01"[/color][/b] [b][color=#a52a2a]"F-TERM02"[/color][/b][b][color=RED])[/color][/b]
  49.        [b][color=RED])[/color][/b]
  50.      [b][color=RED])[/color][/b]
  51.    [b][color=RED])[/color][/b]
  52. [b][color=RED])[/color][/b]
  53. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b]            
  54. [b][color=RED])[/color][/b]
  55. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] SelectifFoo [b][color=RED]([/color][/b] foo str [b][color=BLUE]/[/color][/b] sel ent [b][color=RED])[/color][/b]
  56. [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b]
  57.    [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
  58.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] sel [b][color=RED]([/color][/b][b][color=BLUE]entsel[/color][/b] str[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  59.      
  60.      [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b]
  61.        [b][color=RED]([/color][/b]
  62.          [b][color=RED]([/color][/b][b][color=BLUE]vl-consp[/color][/b] sel[b][color=RED])[/color][/b]
  63.          [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b]foo [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ent [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] sel[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  64.            [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#a52a2a]"\n** Invalid Object Selected **"[/color][/b][b][color=RED])[/color][/b]
  65.          [b][color=RED])[/color][/b]
  66.        [b][color=RED])[/color][/b]
  67.      [b][color=RED])[/color][/b]
  68.    [b][color=RED])[/color][/b]
  69. [b][color=RED])[/color][/b]
  70. ent
  71. [b][color=RED])[/color][/b]
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

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

铜币
238
发表于 2022-7-6 11:11:36 | 显示全部楼层
谢谢各位,
 
我试了李的第一次,一旦我记得改变我的区块(忘记保存昨晚),它做了我需要的。
 
Alan,你的用破折号替换了Tag1,用字符串F-Term01替换了属性Term01,但保持了属性F-Term01不变(空)。但这可能是我的描述。李以前为我写过一些套路,所以以前也听过我的喃喃自语
 
不过有几个问题。
 
如果TermXX有值,是否可以将例程更改为仅填充F-TermXX?因此,如果TermXX有值,则两个F-Term属性都会填充,如果只有一个项有值,则只填充一个,如果没有给定TermXX值,则两者都不会填充。AcadE的性质确保Tag1始终具有价值。
 
最后。。。。。。
 
我们将该值提取到文本文件中,用于打印热缩线标记。将层“套圈”上的所有文本或名为“F-*”的所有属性提取到文本文件中是否容易(不要求这样做)?按层还是按标记名,哪个更容易?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:13:16 | 显示全部楼层
我很高兴它对你有用Dave
 
至于你的另一个请求-按层将更容易,因为在使用ssget过滤器时,没有针对属性的直接过滤方法,因此必须依次查看每个块-不是说无法完成,而是按层提取文本更容易。
 
我会在演讲结束后一分钟修改代码
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

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

铜币
238
发表于 2022-7-6 11:17:34 | 显示全部楼层
谢谢李。
 
如果我去VB,ByLayer也适合我。未来的净路线
 
我已经向我的老板展示了我的提议,他对这种方法很满意。这几天不需要强迫AcadE屈服。我现在可以在下周末去度假了,我有一个明确的想法:眨眼。
 
好好讲一讲。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 17:04 , Processed in 0.470828 second(s), 72 queries .

© 2020-2025 乐筑天下

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