大家好,
这段代码来自另一个线程(最近),但是,由于它有点偏离主题,我认为它应该有一个新的线程。
我最初发布这段代码是为了将所有实体从层“0”移动到层“0-From0”,但它一直显示错误,我无法找出原因:
- (defun c:0to0 (/ ss layers 0lay 0Nlay err)
- (if (setq ss (ssget "X" '((8 . "0"))))
- (progn
- (setq layers (vla-get-layers
- (vla-get-ActiveDocument
- (vlax-get-acad-object))))
- (vlax-for lay layers
- (cond ((eq "0" (vla-get-name lay))
- (setq 0lay lay))
- ((eq "0-From0" (vla-get-name lay))
- (setq 0Nlay lay))))
- (if (not 0Nlay)
- (setq 0Nlay (vla-add layers "0-From0")))
- (vla-put-color 0Nlay (vla-get-color 0lay))
- (vla-put-linetype 0Nlay (vla-get-linetype 0lay))
- (vla-put-lineweight 0Nlay (vla-get-lineweight 0lay))
- (if (vl-catch-all-error-p
- (setq err (vl-catch-all-apply
- '(lambda (x) (vla-put-layer x "0-From0"))
- (mapcar 'vlax-ename->vla-object
- (mapcar 'cadr (ssnamex ss))))))
- (princ (strcat "\nError: " (vl-catch-all-error-message err)))))
- (princ "\n<!> No Objects Found on Layer "0" <!>"))
- (princ))
我发布了这段代码,只是为了让我过得去,但原来的代码把我逼疯了,因为我无法找出错误的来源!
- (defun c:0to0 (/ ss layers 0lay 0Nlay)
- (if (setq ss (ssget "X" '((8 . "0"))))
- (progn
- (setq layers (vla-get-layers
- (vla-get-ActiveDocument
- (vlax-get-acad-object))))
- (vlax-for lay layers
- (cond ((eq "0" (vla-get-name lay))
- (setq 0lay lay))
- ((eq "0-From0" (vla-get-name lay))
- (setq 0Nlay lay))))
- (if (not 0Nlay)
- (setq 0Nlay (vla-add layers "0-From0")))
- (vla-put-color 0Nlay (vla-get-color 0lay))
- (vla-put-linetype 0Nlay (vla-get-linetype 0lay))
- (vla-put-lineweight 0Nlay (vla-get-lineweight 0lay))
- (mapcar '(lambda (x) (vla-put-layer x "0-From0"))
- (mapcar 'vlax-ename->vla-object
- (mapcar 'cadr (ssnamex ss)))))
- (princ "\n<!> No Objects Found on Layer "0" <!>"))
- (princ))
非常感谢您的帮助和时间!
干杯
李 |