CADsite forum

AutoCAD => Autolisp => Topic gestart door: Snuffel op do 14 12 2006, 16:10:13

Titel: Lisp probleempje
Bericht door: Snuffel op do 14 12 2006, 16:10:13
Ik heb een tijdje geleden een lispje gemaakt om mijn layers te hernoemen.

(defun c:translatefr ()
   (command "rename" "LA" "A012_KADER" "A012_CADRE")
(command "rename" "LA" "A013_TITELHOEK" "A013_CARTOUCHE")
(command "rename" "LA" "A015_CIRCULATIE" "A015_CIRCULATION")
enz...

Nu heb ik volgend probleem: als er een layer ontbreekt dan hernoemt hij de rest van de layers niet verder.
dan staat er op de commandline:

Enter old layer name: A015_CIRCULATIE
Cannot find layer "A015_CIRCULATIE".
Enter old layer name: _undo
Cannot find layer "_undo".
; error: An error has occurred inside the *error* functionFunction cancelled
Enter old layer name:

Ik zou graag hebben dat je dan deze layer kan overslaan (door skip of zo te typen) en dat dan de rest van de layers wordt hernoemd.
En ik heb geen idee hoe je dat moet doen.

Kan iemand mij helpen?

Groetjes Snuffel
Titel: Re: Lisp probleempje
Bericht door: HofCAD op do 14 12 2006, 21:17:45
Citaat van: Snuffel op do 14 12 2006, 16:10:13
Ik heb een tijdje geleden een lispje gemaakt om mijn layers te hernoemen.

(defun c:translatefr ()
   (command "rename" "LA" "A012_KADER" "A012_CADRE")
(command "rename" "LA" "A013_TITELHOEK" "A013_CARTOUCHE")
(command "rename" "LA" "A015_CIRCULATIE" "A015_CIRCULATION")
enz...

Nu heb ik volgend probleem: als er een layer ontbreekt dan hernoemt hij de rest van de layers niet verder.
dan staat er op de commandline:

Enter old layer name: A015_CIRCULATIE
Cannot find layer "A015_CIRCULATIE".
Enter old layer name: _undo
Cannot find layer "_undo".
; error: An error has occurred inside the *error* functionFunction cancelled
Enter old layer name:

Ik zou graag hebben dat je dan deze layer kan overslaan (door skip of zo te typen) en dat dan de rest van de layers wordt hernoemd.
En ik heb geen idee hoe je dat moet doen.

Kan iemand mij helpen?

Groetjes Snuffel


Beste Snuffel,

Zoek je naar het onderstaande?

(defun c:translatefr ()
(if (tblsearch "LAYER" "A012_KADER")
(command "_.RENAME" "_LA" "A012_KADER" "A012_CADRE"))
(if (tblsearch "LAYER" "A013_TITELHOEK")
(command "_.RENAME" "_LA" "A013_TITELHOEK" "A013_CARTOUCHE"))
(if (tblsearch "LAYER" "A015_CIRCULATIE")
(command "_.RENAME"  "_LA" "A015_CIRCULATIE" "A015_CIRCULATION"))
)


Met vriendelijke groet,
HofCAD CSI

PS Het probleem http://www.cadsite.be/smf/index.php/topic,1481.0.html
en http://www.cadsite.be/smf/index.php?topic=4708.msg24855#new
is van dezelfde soort.
Alleen staan de OldNames, NewNames, NewLinetype, NewColor en NewLWeights
in lijsten.
Titel: Re: Lisp probleempje
Bericht door: Snuffel op vr 15 12 2006, 12:05:51
Heb het ff uitgeprobeerd.  En het werkt perfect zoals ik wil!  :lol:
Bedankt!
Ik zou het niet op mijn eentje gevonden hebben.

Groetjes
Snuffel