乐筑天下

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

[编程交流] 请求-重新创建此lisp

[复制链接]

7

主题

80

帖子

73

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 18:26:20 | 显示全部楼层 |阅读模式
嗨,lisp大师,我需要你们的专业知识。
我需要有人重新创建这个受保护的lisp。
(我不想去保护它,但用相同的功能重新制作/重新创建/重写)。
试试Lisp程序。QW。lsp
 
原因是,他想知道他(这里的一些老家伙,但多年前离开了公司)是如何做到这一点的。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:29:52 | 显示全部楼层
Lisp程序是做什么的?你能上传该功能的记录视图(视频)吗?
回复

使用道具 举报

7

主题

80

帖子

73

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 18:33:29 | 显示全部楼层
 
命令为QW,
调用它时,要求进行选择,任何选择都会生成当前图层/线型(如果它选择一条线/多线作为默认值)。
它还可以选择块和文本。
它就像一个包含属性的复制实体/对象。
 
注意:我将在12小时后删除附加的视频。
样品拉链
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:38:50 | 显示全部楼层
我知道你肯定可以管理剩下的代码
 
  1. (if (and (setq s (car (entsel "\nSelect any object :")))
  2.         (wcmatch (cdr (assoc 0 (setq e (entget s))))
  3.                  "LINE,*POLYLINE,CIRCLE,ARC")
  4.         )
  5. (progn
  6.    (if (cdr (assoc 6 e))
  7.      (setvar 'CELTYPE (cdr (assoc 6 e)))
  8.      (setvar 'CELTYPE "ByLayer")
  9.      )
  10.    (if (cdr (assoc 62 e))
  11.      (setvar 'CECOLOR (itoa (cdr (assoc 62 e))))
  12.      (setvar 'CECOLOR "ByLayer")
  13.      )
  14.    )
  15. )
回复

使用道具 举报

7

主题

80

帖子

73

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 18:39:58 | 显示全部楼层
 
这将是一个良好的开端。。非常感谢我的朋友。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:43:36 | 显示全部楼层
 
欢迎您,祝您在编码之旅中好运。
当你遇到障碍时询问。
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-5 18:46:08 | 显示全部楼层
嗨,ttray33y。你重新创建代码了吗?你能贴出来吗?
回复

使用道具 举报

12

主题

152

帖子

140

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 18:49:48 | 显示全部楼层
  1. (defun c:qwremake ()
  2. (if (and (setq s (car (entsel "\nSelect any object: ")))
  3.    (wcmatch (cdr (assoc 0 (setq e (entget s))))
  4.             "LINE,*POLYLINE,CIRCLE,ARC"
  5.    )
  6.      )
  7.    ;; This will set the properties for lines, polylines, circles and arcs
  8.    (progn
  9.      ;; linetype
  10.      (if (cdr (assoc 6 e))
  11. (setvar 'CELTYPE (cdr (assoc 6 e)))
  12. (setvar 'CELTYPE "ByLayer")
  13.      )
  14.      ;; layer
  15.      (if (cdr (assoc 8 e))
  16. (setvar 'CLAYER (cdr (assoc 8 e)))
  17.      )
  18.      ;; color
  19.      (if (cdr (assoc 62 e))
  20. (setvar 'CECOLOR (itoa (cdr (assoc 62 e))))
  21. (setvar 'CECOLOR "ByLayer")
  22.      )
  23.      ;; Now we run the command to recreate the same object type
  24.      (command comm (cdr (assoc 0 (setq e (entget s)))))
  25.    )
  26. )
  27. )

 
我似乎无法使用多段线。有什么好处?还有,我的方向对吗?
 
我计划下一步为blocks添加功能。
 
顺便说一句,我一直在使用李Mac的lisp来帮助确定assoc代码。可以在这里找到。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:53:53 | 显示全部楼层
你好,iconeo,
 
如果层名称有值,则无需检查层名称,因为在这种情况下它应该始终有值。
我想你在我的原始代码中添加了一个额外的单词。
回复

使用道具 举报

12

主题

152

帖子

140

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 18:55:46 | 显示全部楼层
 
谢谢你的信息。这是我的更新。
 
  1. (defun c:qwremake ()
  2. (if (and (setq s (car (entsel "\nSelect any object: ")))
  3.    (wcmatch (cdr (assoc 0 (setq e (entget s))))
  4.             "LINE,*POLYLINE,CIRCLE,ARC"
  5.    )
  6.      )
  7.    ;; This will set the properties for lines, polylines, circles and arcs
  8.    (progn
  9.      ;; layer
  10.      (setvar 'CLAYER (cdr (assoc 8 e)))
  11.      ;; linetype
  12.      (if (cdr (assoc 6 e))
  13. (setvar 'CELTYPE (cdr (assoc 6 e)))
  14. (setvar 'CELTYPE "ByLayer")
  15.      )
  16.      ;; color
  17.      (if (cdr (assoc 62 e))
  18. (setvar 'CECOLOR (itoa (cdr (assoc 62 e))))
  19. (setvar 'CECOLOR "ByLayer")
  20.      )
  21.      ;; polyline width
  22.      (if (cdr (assoc 43 e))
  23. (setvar 'PLINEWID (cdr (assoc 43 e)))
  24.      )
  25.      ;; Now we run the command to recreate the same object type.
  26.      (if (wcmatch (cdr (assoc 0 (setq e (entget s))))
  27.            "LINE,CIRCLE,ARC"
  28.   )
  29. (command comm (cdr (assoc 0 (setq e (entget s)))))
  30. (command "pline")
  31.      )
  32.    )
  33. )
  34. )

 
现在来解决方块处理。关于如何使用assoc过滤块,有什么帮助吗?
 
干杯
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 19:43 , Processed in 1.311313 second(s), 72 queries .

© 2020-2025 乐筑天下

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