乐筑天下

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

[编程交流] 用于锁定的Copytolayer命令

[复制链接]

56

主题

256

帖子

230

银币

后起之秀

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

铜币
253
发表于 2022-7-21 07:33:38 | 显示全部楼层 |阅读模式
我希望能够使用COPYTOLAYER命令将锁定层复制到新层。
 
我试图通过在COPYTOLAYER命令之前和之后解锁层来解决这个问题。
 
当我尝试复制锁定层时,会出现这样的错误:
083342ionajpv2jarbsrns.png
 
代码如下:
  1. (vl-load-com)
  2. ;; PROBLEM
  3. ;; AutoCAD gives unhandled exception error with eOnLockedLayer.
  4. ;; TO ADD
  5. ;; Change this to have undo handling
  6. (defun c:Lay_Copy_Locked (/ layUlist laydata ss)
  7.   (setq doc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
  8.   ; Unlock all layers - https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/unlocking-layers-is-painfully-slow/m-p/2881866#M294136
  9.   (vlax-for item (vla-get-layers doc)
  10.     (if (= (vlax-get-property item "Lock") :vlax-true)
  11.       (progn
  12.         (setq Locked_Layers (cons item Locked_Layers)) ; set variable "locked_layers" to all locked layers.
  13.         (vlax-put-property item "Lock" :vlax-false) ; unlock each layer if it is locked.
  14.       ) ; end progn
  15.     ) ; end if
  16.   ) ; end vlax
  17.   ;; Copy to layer
  18.   (if (setq ss (ssget "_:L"))
  19.     (command "._-copytolayer" ss "")
  20.   ) ; end if
  21.   ; If any layers were locked at the beginning, lock them again. -https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/unlocking-layers-is-painfully-slow/m-p/2881866#M294136
  22.   (if Locked_Layers
  23.     (mapcar '(lambda (x) (vlax-put-property x "Lock" :vlax-true)) Locked_Layers)
  24.   ) ; end if
  25.   (princ)
  26. ) ; defun
  27. (c:Lay_Copy_Locked)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-6-28 08:36 , Processed in 0.635649 second(s), 58 queries .

© 2020-2025 乐筑天下

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