kan iemand mij een voorbeeld geven van een script om layers te veranderen?
ik heb een export uit een beheerpakket en wil graag voor intern gebruik layers veranderen met een scr. die ik run.
dus..... rename (oude layer) naar (nieuwe layer).
wie heeft hier een voorbeeld van?
groet jan-pieter
Heb je al eens gekeken naar de werking van 'standards'?
nee dat ken ik niet.
wil je het uitleggen?
http://docs.autodesk.com/ACD/2011/ENU/filesACR/WS1a9193826455f5ffa23ce210c4a30acaf-5324.htm
Beste Designer68,
In een zuivere script waar geen AutoLisp uitdrukkingen staan kan dat niet,
omdat er dan geen beslissingen genomen kunnen worden.
Stel dat je oude lagen resp. de volgende namen hebben:
Layer1, Layer2, Layer3, Layer4, Layer5 en Layer6.
Stel dat deze respectievelijk veranderd moeten worden naar de volgende namen:
Ln-018, Ln-025, Ln-035, Ln-050, Ln-070 en Ln-100".
Dan zou je dat kunnen doen met:
(defun C:OldLay2NewLay (/ OldLayLst NewLayLst i OldLay NewLay)
(setq
OldLayLst '("Layer1" "Layer2" "Layer3" "Layer4" "Layer5" "Layer6")
)
(setq
NewLayLst '("Ln-018" "Ln-025" "Ln-035" "Ln-050" "Ln-070" "Ln-100")
)
(setq i 0)
(repeat (length OldLayLst)
(setq OldLay (nth i OldLayLst)
NewLay (nth i NewLayLst)
)
(if (and (tblsearch "LAYER" OldLay)
(not (tblsearch "LAYER" NewLay))
)
(command "_.RENAME" "_LA" OldLay NewLay)
)
(setq i (1+ i))
)
(princ)
);;End OldLay2NewLay
of
(defun C:OldLay2NewLay2 (/ OldNewLayLst i OldLay NewLay)
(setq OldNewLayLst
'(
("Layer1" "Ln-018")
("Layer2" "Ln-025")
("Layer3" "Ln-035")
("Layer4" "Ln-050")
("Layer5" "Ln-070")
("Layer6" "Ln-100")
)
)
(setq i 0)
(repeat (length OldNewLayLst)
(setq OldLay (car (nth i OldNewLayLst))
NewLay (cadr (nth i OldNewLayLst))
)
(if (and (tblsearch "LAYER" OldLay)
(not (tblsearch "LAYER" NewLay))
)
(command "_.RENAME" "_LA" OldLay NewLay)
)
(setq i (1+ i))
)
(princ)
);;End OldLay2NewLay2
Met vriendelijke groet, HofCAD CSI.
PS1 Zie attachment voor Lisp en Scripts.
PS2 http://www.cadsite.be/smf/index.php?topic=1509.msg8061#msg8061 en
http://www.cadsite.be/smf/index.php/topic,1481.0.html
mensen,
dank voor jullie oplossingen
ik ga de lisp routines verder aanpassen om te gebruiken.
groet,
jan-pieter