乐筑天下

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

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

[复制链接]

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 19:00:13 | 显示全部楼层
iconeo,正如我之前提到的,你有一个额外的单词,那就是comm,它是不需要的
 
对代码稍作修改。
 
  1. (defun c:qwremake (/ s en e plw)
  2. (if (and (setq s (entsel "\nSelect any object: "))
  3.           (wcmatch (setq en (cdr (assoc 0 (setq e (entget (car s))))))
  4.                    "LINE,*POLYLINE,CIRCLE,ARC,INSERT"
  5.           )
  6.      )
  7.    (progn
  8.      ;; layer
  9.      (setvar 'CLAYER (cdr (assoc 8 e)))
  10.      ;; linetype
  11.      (if (cdr (assoc 6 e))
  12.        (setvar 'CELTYPE (cdr (assoc 6 e)))
  13.        (setvar 'CELTYPE "ByLayer")
  14.      )
  15.      ;; color
  16.      (if (cdr (assoc 62 e))
  17.        (setvar 'CECOLOR (itoa (cdr (assoc 62 e))))
  18.        (setvar 'CECOLOR "ByLayer")
  19.      )
  20.      ;; polyline width
  21.      (if (cdr (assoc 43 e))
  22.        (progn
  23.          (setq plw (getvar 'PLINEWID))
  24.          (setvar 'PLINEWID (cdr (assoc 43 e)))
  25.        )
  26.      )
  27.      (cond ((wcmatch en "LINE,CIRCLE,ARC")
  28.             (command en)
  29.            )
  30.            ((eq en "INSERT")
  31.             (command "_.copy"
  32.                      s
  33.                      ""
  34.                      (cadr s)
  35.                      "\"
  36.             )
  37.            )
  38.            ((wcmatch en "*POLYLINE") (command "pline"))
  39.      )
  40.      (setvar 'PLINEWID plw)
  41.    )
  42. )
  43. (princ)
  44. )
回复

使用道具 举报

12

主题

152

帖子

140

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 19:01:25 | 显示全部楼层
在继续之前,非常感谢您的技能和时间!
 
我真的很喜欢你处理积木的方式。我有一个使用insert的有效解决方案,但后来我不得不处理我不想处理的缩放和旋转,而你的解决方案在动态块和vis状态下工作得更好。
 
然而,关于PLINEWID,我无法使你的lisp正常工作。在设置plw后,它似乎不想将值设置为PLINEWID。。。不知道为什么,因为我尝试了不同的方法。
 
无论如何,我添加了椭圆支持,现在我将处理图案填充。
 
  1. (defun c:qwremake (/ s en e plw)
  2. (if (and (setq s (entsel "\nSelect any object: "))
  3.    (wcmatch (setq en (cdr (assoc 0 (setq e (entget (car s))))))
  4.             "LINE,CIRCLE,ARC,ELLIPSE,*POLYLINE,INSERT"
  5.    )
  6.      )
  7.    (progn
  8.      ;; layer
  9.      (setvar 'CLAYER (cdr (assoc 8 e)))
  10.      ;; linetype
  11.      (if (cdr (assoc 6 e))
  12. (setvar 'CELTYPE (cdr (assoc 6 e)))
  13. (setvar 'CELTYPE "ByLayer")
  14.      )
  15.      ;; color
  16.      (if (cdr (assoc 62 e))
  17. (setvar 'CECOLOR (itoa (cdr (assoc 62 e))))
  18. (setvar 'CECOLOR "ByLayer")
  19.      )
  20.      ;; polyline width
  21.      (if (cdr (assoc 43 e))
  22. (setvar 'PLINEWID (cdr (assoc 43 e)))
  23.      )
  24.      (cond ((wcmatch en "LINE,CIRCLE,ARC,ELLIPSE")
  25.      (command en)
  26.     ) ;end condition
  27.     ((eq en "INSERT")
  28.      (command "_.copy"
  29.               s
  30.               ""
  31.               (cadr s)
  32.               "\"
  33.      )
  34.     ) ;end condition
  35.     ((wcmatch en "*POLYLINE")
  36.      (command "pline")
  37.     ) ;end condition
  38.      )
  39.    )
  40. )
  41. (prompt "\nObject not compatible.")
  42. (princ)
  43. )

 
非常感谢。
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-5 19:05:11 | 显示全部楼层
iconeo。代码不错。还不使用文字、样条线和图案填充。。。
 
谢谢
回复

使用道具 举报

12

主题

152

帖子

140

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 19:08:22 | 显示全部楼层
 
嘿,谢谢。最初的海报创意和塔尔瓦特得到了巨大的帮助。
 
计划添加对文字、尺寸、图案填充和引线的支持。你认为我还应该解决其他问题吗?
回复

使用道具 举报

7

主题

80

帖子

73

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 19:11:07 | 显示全部楼层
 
  1.             ((eq en "INSERT")
  2.      (command "_.copy"
  3.               s
  4.               ""
  5.               (cadr s)
  6.               "\"
  7.      )
  8.     ) ;end condition

代替“复制”,重新编写并尝试插入函数。
回复

使用道具 举报

12

主题

152

帖子

140

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 19:16:25 | 显示全部楼层
 
对于我的用例来说,副本效果更好。然后我就不必去处理动态块、旋转、缩放等的视觉状态。
 
如果有人想走插入路线,李-麦克的助手lisp例程可以很好地用于动态块。
 
谢谢
回复

使用道具 举报

7

主题

80

帖子

73

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 19:17:32 | 显示全部楼层
更多的想法不断涌现,我们都知道有很多方法可以编写这个函数。。
回复

使用道具 举报

12

主题

152

帖子

140

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 19:21:26 | 显示全部楼层
我被领导者和维度困住了。如何访问用户箭头覆盖信息?我相信它是在扩展数据中,我不知道如何正确地阅读它,甚至不知道如何使用它。感谢您的帮助。
 
谢谢
回复

使用道具 举报

7

主题

80

帖子

73

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 19:25:37 | 显示全部楼层
为qleader试试这个,抱歉这是一个noob例程。
 
  1. (defun leader_a ()
  2.   (progn
  3.      (setq dim_style (cdr (assoc 3 alist))
  4.            lyr (cdr (assoc 8 alist))
  5.      )     
  6.      (command "-dimstyle" "r" dim_style
  7.                "-layer" "s" lyr ""
  8.                "qleader")
  9.   )
  10. )
  11. (defun c:QW ()
  12. (setvar "cmdecho" 1)   
  13.   (setq alist (entget (car (entsel)))
  14.         ent (cdr (assoc 0 alist))
  15.   )     
  16.   (if (= ent "LEADER") (leader_a))
  17. (princ)         
  18. )
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-5 19:28:49 | 显示全部楼层
有人能添加这样的内容吗?
 
  1. (setq convert (cond ( (getkword "\nconvert to polylines? [Yes/No] <N>: ") ) ( "No" )))
  2.          (if (eq "Yes" convert)
  3.              (command "_.pedit" "_M" 2bjoin  "" "_J" "" ""))
  4.          )
  5.    )
  6.    (setvar 'peditaccept ped)
  7. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 20:14 , Processed in 0.399256 second(s), 70 queries .

© 2020-2025 乐筑天下

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