乐筑天下

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

[编程交流] 李';s层控制器

[复制链接]

5

主题

1074

帖子

1088

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-5 17:42:44 | 显示全部楼层 |阅读模式
我真的很喜欢使用李的层导演lisp,(谢谢李)
 
我突然想到,它可以很容易地进行调整(如果不是因为我的不熟练),以创建每个外部参照所需的唯一层,由XATTACH命令触发。指挥反应堆已经就位。每个外部参照都需要附着在一个新层上,该层是0层的精确副本,并命名为XREF*,当然通配符名称将从要附着的实体中提取,我还不知道该怎么做?
 
非常感谢您的建议/解决方案。
回复

使用道具 举报

37

主题

264

帖子

236

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-5 17:54:07 | 显示全部楼层
嗨,李,
我正在使用这篇旧帖子对layerdirector进行调整,我有一个愿望。也
当我的设置设置为图层“在工具栏中不可见”时,layerdirector例程会将对象放置在当前图层中。它无法重新设计层
 
是否可以修改该工具,使其始终找到良好的图层,即使该图层“未列出”?
提前感谢
 
 
汉斯
184250hthk1mc24con4vt4.jpg
回复

使用道具 举报

28

主题

118

帖子

95

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
136
发表于 2022-7-5 18:03:02 | 显示全部楼层
 
AlanJ.Thompson(alanjt)的这段代码怎么样
 
  1. ;;; ------------------------------------------------------------------------
  2. ;;;        XRefsToLayers.lsp v1.0
  3. ;;;
  4. ;;;        Copyright© 04.27.10
  5. ;;;        Alan J. Thompson (alanjt)
  6. ;;;
  7. ;;;        Contact: alanjt @ TheSwamp.org, CADTutor.net
  8. ;;;
  9. ;;;        Permission to use, copy, modify, and distribute this software
  10. ;;;        for any purpose and without fee is hereby granted, provided
  11. ;;;        that the above copyright notice appears in all copies and
  12. ;;;        that both that copyright notice and the limited warranty and
  13. ;;;        restricted rights notice below appear in all supporting
  14. ;;;        documentation.
  15. ;;;
  16. ;;;        The following program(s) are provided "as is" and with all faults.
  17. ;;;        Alan J. Thompson DOES NOT warrant that the operation of the program(s)
  18. ;;;        will be uninterrupted and/or error free.
  19. ;;;
  20. ;;;        Allows user to moved all XRefs to layer, based on XRef name with
  21. ;;;        prefix of "G-XREF_".
  22. ;;;        User also has option to lock created XRef layers.
  23. ;;;
  24. ;;;        Revision History:
  25. ;;;
  26. ;;; ------------------------------------------------------------------------
  27. (defun c:XR2L (/) (c:XRefsToLayers))
  28. (defun c:XRefsToLayers (/ *error* Prefix4Layer xrefLst ss flag lock layLst lst)
  29. ;; Prefix4Layer (if no prefix wanted, set as "")
  30. (setq Prefix4Layer "G-XREF_")
  31. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  32. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SUBROUTINES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  33. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  34. ;; error handler
  35. (defun *error* (msg)
  36.    (and flag *AcadDoc* (vla-EndUndoMark *AcadDoc*))
  37.    (and msg
  38.         (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*QUIT*"))
  39.         (princ (strcat "\nError: " msg))
  40.    )
  41. )
  42. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  43. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MAIN ROUTINE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  44. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  45. (vl-load-com)
  46. (if (eq ""
  47.          (setq xrefLst
  48.                 ((lambda (s)
  49.                    (vlax-for x (vla-get-blocks
  50.                                  (cond (*AcadDoc*)
  51.                                        ((setq *AcadDoc* (vla-get-ActiveDocument (vlax-get-acad-object))))
  52.                                  )
  53.                                )
  54.                      (and (eq (vla-get-isXRef x) :vlax-true) (not (wcmatch (vla-get-name x) "*TBLOCK*")) (setq s (strcat s (vla-get-name x) ",")))
  55.                    )
  56.                    s
  57.                  )
  58.                   ""
  59.                 )
  60.          )
  61.      )
  62.    (alert "Zero XRefs in drawing.")
  63.    (if (setq ss (ssget "_X" (list '(0 . "INSERT") (cons 2 xrefLst))))
  64.      ((lambda (pre layers)
  65.         (initget 0 "Yes No")
  66.         (setq lock "No")
  67.         (setq flag (not (vla-StartUndoMark *AcadDoc*)))
  68.         (vlax-for o (setq ss (vla-get-ActiveSelectionSet *AcadDoc*))
  69.           ((lambda (layer)
  70.              (or (vl-position layer layLst) (setq layLst (cons layer layLst)))
  71.              (setq lst ((lambda (lst)
  72.                           ((lambda (ass)
  73.                              (if ass
  74.                                (subst (cons (car ass) (1+ (cdr ass))) ass lst)
  75.                                (cons (cons layer 1) lst)
  76.                              )
  77.                            )
  78.                             (assoc layer lst)
  79.                           )
  80.                         )
  81.                          lst
  82.                        )
  83.              )
  84.              (or (eq (vla-get-layer o) (strcat pre (vla-get-name o)))
  85.                  (if (vl-catch-all-error-p
  86.                        (vl-catch-all-apply
  87.                          (function vla-put-layer)
  88.                          (list o layer)
  89.                        )
  90.                      )
  91.                    ((lambda (item)
  92.                       (vla-put-lock item :vlax-false)
  93.                       (vla-put-layer o layer)
  94.                       (vla-put-lock item :vlax-true)
  95.                     )
  96.                      (vla-item layers (vla-get-layer o))
  97.                    )
  98.                  )
  99.              )
  100.            )
  101.             (if (vl-position (strcat pre (vla-get-name o)) layLst)
  102.               (strcat pre (vla-get-name o))
  103.               (vla-get-name (vla-add layers (strcase (strcat pre (vla-get-name o)))))
  104.             )
  105.           )
  106.         )
  107.         (vla-delete ss)
  108.         (and
  109.           layLst
  110.           (or (eq lock "No")
  111.               (mapcar (function (lambda (l) (vla-put-lock (vla-item layers l) :vlax-true))) layLst)
  112.           )
  113. ;;;           lst
  114. ;;;           (foreach i (vl-sort lst (function (lambda (a b) (< (car a) (car b)))))
  115. ;;;             (princ (strcat "\n" (itoa (cdr i)) " XRef(s) on layer: "" (car i) """))
  116. ;;;           )
  117.           (setq lst ((lambda (lst str)
  118.                        (if lst
  119.                          (progn
  120.                            (foreach i (vl-sort lst
  121.                                                (function (lambda (a b)
  122.                                                            (< (car a) (car b))
  123.                                                          )
  124.                                                )
  125.                                       )
  126.                              (setq str (strcat str
  127.                                                "\n"
  128.                                                (itoa (cdr i))
  129.                                                " XRef(s) on layer: ""
  130.                                                (car i)
  131.                                                """
  132.                                        )
  133.                              )
  134.                            )
  135.                            str
  136.                          )
  137.                        )
  138.                      )
  139.                       lst
  140.                       ""
  141.                     )
  142.           )
  143.           (alert lst)
  144.         )
  145.       )
  146.        Prefix4Layer
  147.        (vla-get-Layers *AcadDoc*)
  148.      )
  149.    )
  150. )
  151. (*error* nil)
  152. (princ)
  153. )
  154. (c:XR2L)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:16:34 | 显示全部楼层
 
终于,你的愿望实现了(我只用了4年时间就实现了!)层控制器V1.5
 
我很高兴你发现这个程序如此有用!
 
回复

使用道具 举报

5

主题

1074

帖子

1088

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-5 18:19:29 | 显示全部楼层
 
尽管你的Lisp程序对我很有帮助,但自从开始使用它们以来,言语无法表达我的感激之情。
 
一如既往地,非常感谢!
 
一些不错的新的额外功能,以及,我相信哈拉姆会感到兴奋,当他检查出来了。
 
对于没有每天在启动lisp目录中使用此lisp的人,为什么不呢?
回复

使用道具 举报

37

主题

264

帖子

236

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-5 18:31:14 | 显示全部楼层

我同意Dadgad的观点
进步很大。
我仍然有一个愿望。
我注意到老式的方式(classicxref)不起作用。
就我个人而言,我喜欢避免屏幕填充外部参照面板。
能做到吗?
 
 
干得好!!
来自阳光灿烂的荷兰的问候
 
 
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:42:13 | 显示全部楼层
 
谢谢爸爸的客气话和感激之情,我真的很感激,我很高兴你发现我的程序如此有用。
 
 
很好,Hans-我现在已经将程序更新到V1.6,以说明CLASSICXREF命令的使用。
 
回复

使用道具 举报

10

主题

895

帖子

887

银币

初来乍到

Rank: 1

铜币
49
发表于 2022-7-5 18:47:46 | 显示全部楼层
 
+1
 
他说了什么。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 04:24 , Processed in 0.419036 second(s), 81 queries .

© 2020-2025 乐筑天下

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