大家好,谢谢你们的密码。
上周,我阅读了AfraLisp、CadTutor、Lee Mac和JefferySanders的所有教程。
到目前为止,我学到了很多,现在我正在尝试使用一切
尽管我必须说,我找不到很多使用“vlax”方法的教程???
在我发表最初的帖子之前,这就是我所拥有的。
- (defun C:WisselStatus()
- (setvar "cmdecho" 0)
- (command "UNDO" "BEGIN")
- (setq objecten (ssget ":L"))
- (initget "B V T N R X")
- (setq nieuwestatus (getkword "\nWissel status naar: [bestaand/Vervallen/Tijdelijk/Nieuw/Revisie/X(onafhankelijk)]: "))
- (if (= nieuwestatus nil)
- (progn
- (princ "\nLagen ongewijzigd...")
- )
- (progn
- (setq i 0 n 0)
- (setq userlayer (getvar "CLAYER"))
- (setq n (sslength objecten))
- (repeat n
- (setq e (ssname objecten i)) ;get an ename
- (setq enx (entget e)) ; get entity's data
- (setq currentlayer (cdr (assoc 8 enx))) ;get entity's layer
- (setq newlayer (strcat nieuwestatus (substr currentlayer 2))) ; set the new layer name for entity's
- (if (tblsearch "LAYER" newlayer)
- (progn ;direct verplaatsen
- (setq enx (subst (cons 8 newlayer) (assoc 8 enx) enx)) ;change (substitute) the layer association of its data
- (entmod enx) ; modify the entity
- )
- (progn ;eerst laag aanmaken en dan verplaatsen
- (setq layerinfo (tblsearch "LAYER" currentlayer)) ;get the layer data
- (setq layercolor (cdr (assoc 62 layerinfo))) ;get the layer colour
- (setq layerlinetype (cdr (assoc 6 layerinfo))) ;get the layer linetype
- (command "-Layer" "M" newlayer "C" layercolor "" "L" layerlinetype "" "")
- (setq enx (subst (cons 8 newlayer) (assoc 8 enx) enx)) ;change (substitute) the layer association of its data
- (entmod enx) ; modify the entity
- (command "-purge" "LA" currentlayer "" "Y")
- )
- )
- (setq i (1+ i))
- )
- )
- )
- (if (tblsearch "LAYER" userlayer)
- (setvar "CLAYER" userlayer)
- (setvar "CLAYER" newlayer)
- )
- (command "UNDO" "END")
- (setvar "cmdecho" 1)
- (princ)
- )
- (princ)
今天晚些时候,我会尝试插入给定的代码,但只是想说明我目前的困境。。。 |