Salut,
En regardant ton code, je vois une erreur dans l'expression :
(command
"zoom" "et"
"zoom" "f"
(while (> (getvar "cmdactive") 0)
(command pause))
);_ command
qu'il faut écrire:
(command "zoom" "et" "zoom" "f")
(while (> (getvar "cmdactive") 0)
(command pause)
) ;_ while
Il y a aussi des doubles parenthèses dans les expressions :
((layerstate-restore "Test 1" (acet-currentviewport-ename) 5))
À part ça je te conseillerais :
- d'utiliser l'éditeur Visual LISP (VLIDE) qui, avec ses fonctionnalités de débogage, permet de trouver facilement les erreurs ;
- de déclarer localement les variables ;
- de ne pas compliquer inutilement le code (par exemple les expressions lambda dans ton code).
J'ai essayé de ré-écrire ton code, mais je ne l'ai pas testé.
(defun C:LMAN (/ a b c) ;_ déclaration des variables locales
(initget 1 "A4H A4V A3H A3V A2H A2V A1 A0")
(setq a (getkword "\nChoix du format de présentation : [A4H/A4V/A3H/A3V/A2H/A2V/A1/A0]: "))
(command "_layout" "g" "C:\\ProgramData\\Autodesk\\******************************.dwt" a "ctab" a "_.mspace" "cvport" "2")
(command "zoom" "et" "zoom" "f")
(while (> (getvar "cmdactive") 0)
(command pause)
) ;_ while
(initget 1 "EXISTANT ARCHITECTURE TECHNIQUE")
(setq b getkword "\nChoix de l'état de calque EXISTANT : [EXISTANT/ARCHITECTURE/TECHNIQUE]: " )
(cond
((= b "EXISTANT")
(initget "BATIMENT TEST1 TEST2")
(setq c (getkword "\nChoix de l'état de calque à appliquer [BATIMENT/TEST1/TEST2]: "))
(cond
((= c "BATIMENT")
(layerstate-restore "E1000_Batiment existant" (acet-currentviewport-ename) 5)
)
((= c "TEST1")
(layerstate-restore "Test 1" (acet-currentviewport-ename) 5)
)
((= c "TEST2")
(layerstate-restore "Test 2" (acet-currentviewport-ename) 5)
)
) ;_ cond
)
((= b "ARCHITECTURE")
(initget "AMENAGEMENT TEST1 TEST2")
(setq c (getkword "\nChoix de l'état de calque à appliquer [AMENAGEMENT/TEST1/TEST2]: "))
(cond
((= c "AMENAGEMENT") (layerstate-restore "A2000_Amenagement projet" (acet-currentviewport-ename) 5)
)
((= c "TEST1")
(layerstate-restore "Test 1" (acet-currentviewport-ename) 5)
)
((= c "TEST2")
(layerstate-restore"Test 2"(acet-currentviewport-ename) 5)
)
) ;_ cond
)
((= b "TECHNIQUE")
(initget "AMENAGEMENT TEST1 TEST2")
(getkword "\nChoix de l'état de calque à appliquer [CFO-HAUT/TEST1/TEST2]: ")
)
(cond
((= c "CFO-HAUT")
(layerstate-restore "T2000_CFO haut projet" (acet-currentviewport-ename) 5)
)
((= c "TEST1")
(layerstate-restore "Test 1" (acet-currentviewport-ename) 5)
)
((= c "TEST2")
(layerstate-restore "Test 2" (acet-currentviewport-ename) 5)
)
) ;_ cond
) ;_ cond
(command "regen" "._pspace")
(princ)
) ;_ defun