請教一下各位老大,為什麼我的程序在第二次及以後要求輸入層名時都會提示一次沒有找到層名,要再輸入一次相同的層名才會OK?;復制物件到指定層,可重復到取消命令 (Defun C:Cto (/ Ss1 Cto-Layer Layer Xx-Layer) (Setvar "Cmdecho" 0) (vl-load-com) (Setq Ss1 (Ssget)) (Setq Cto-Layer (Strcase (Getstring "\n 請輸入目標層名:"))) (Setq Layer Nil) (Vlax-For Xx-Layer (Vla-Get-Layers (Vla-Get-Activedocument (Vlax-Get-Acad-Object))) (Setq Layer (Cons (Vla-Get-Name Xx-Layer) Layer)) ) (While (/= Cto-Layer "") (While (= (Member Cto-Layer Layer) nil) (Setq Cto-Layer (Strcase (Getstring "\n 輸入的層名不存在,請重新輸入:"))) ) (Vl-Cmdf ".Copy" Ss1 "" 0 0) (Vl-Cmdf ".Chprop" Ss1 "" "Layer" Cto-Layer "") (Setq Cto-Layer (Getstring "\n 請輸入目標層名:")) );While End (Setvar "Cmdecho" 1) (Princ) ) |