Bonjour, Je me suis lancé (du moins j’essaye) quand j’ai un peu de temps, dans la programmation sur Autocad. J’ai créé des programmes me permettant de travailler sur des sections cadastrales, par défaut au 1/1000ème. Je travaille en ce moment sur un LISP me permettant de changer, suivant l’échelle que je veux, mes hauteurs de textes, largeurs et échelles de polyligne. J’ai un souci et je n’arrive pas à trouver la source du problème. Voici le message d’erreur. Et le lisp en question (Dans cet exemple passer du 1/1000ème au 1/500ème) ;;**********************************ECHCAD.LSP************************************;;
;; "_UNDO" = (GETCNAME "ANNULER")
(DEFUN IGC_ERREUR ( MSGXX / )
(PRINC MSGXX)
(COMMAND "_UNDO" "F")
(COMMAND "_UNDO" 1)
(SETQ *ERROR* ANC_ERR)
(SETVAR "CMDECHO" 1)
(PRINC)
)
;;***********************************************************************************************************************;;
(DEFUN C:ECH500 ( / JS1 JS2 JS3 COMPT OBJ HLD STYTXT TYPLI ECHLI NVECHLI NVEP EPLI1 EPLI2 ANC_ERR)
(SETVAR "CMDECHO" 0)
(COMMAND "_UNDO" "D")
(SETQ ANC_ERR *ERROR*
*ERROR* IGC_ERREUR
)
(SETQ JS1 (SSGET "X" (LIST (CONS 0 "TEXT")
(CONS 8 "CADASTRE-TXT")
)
)
)
(PRINC (STRCAT "\N" (ITOA (SSLENGTH JS1)) " ENTITE(S) SELECTIONNE(S)."))
(TERPRI)
(SETQ COMPT 0)
(WHILE (SETQ ENT (SSNAME JS1 COMPT))
(SETQ OBJ (ENTGET ENT)
STYTXT (CDR (ASSOC 7 OBJ))
HTXT (CDR (ASSOC 40 OBJ))
)
(COND ( (WCMATCH STYTXT "PARCELLE")
(SETQ HLD 0.9)
(SETQ OBJ (SUBST (CONS 40 HLD) (ASSOC 40 OBJ) OBJ))
)
)
(COND ( (WCMATCH STYTXT "POLICE")
(SETQ HLD 0.7)
(SETQ OBJ (SUBST (CONS 40 HLD) (ASSOC 40 OBJ) OBJ))
)
)
(COND ( (WCMATCH STYTXT "SENTECAD")
(SETQ HLD 1.4)
(SETQ OBJ (SUBST (CONS 40 HLD) (ASSOC 40 OBJ) OBJ))
)
)
(COND ( (WCMATCH STYTXT "RUECAD")
(SETQ HLD 1.50)
(SETQ OBJ (SUBST (CONS 40 HLD) (ASSOC 40 OBJ) OBJ))
)
)
(COND ( (WCMATCH STYTXT "LIEUX-DITS")
(SETQ HLD 2.0)
(SETQ OBJ (SUBST (CONS 40 HLD) (ASSOC 40 OBJ) OBJ))
)
)
(COND ( (WCMATCH STYTXT "SECTION")
(SETQ HLD 3.0)
(SETQ OBJ (SUBST (CONS 40 HLD) (ASSOC 40 OBJ) OBJ))
)
)
(COND ( (WCMATCH STYTXT "COMMUNE")
(SETQ HLD 4.0)
(SETQ OBJ (SUBST (CONS 40 HLD) (ASSOC 40 OBJ) OBJ))
)
)
(ENTMOD OBJ)
(SETQ COMPT (1+ COMPT))
)
(SETQ JS2 (SSGET "X" (LIST (CONS 6 "SECTION,LIEUX-DIT,COMMUNE1000")
(CONS 8 "CADASTRE")
)
)
)
(IF JS2
(PROGN
(PRINC (STRCAT "\N" (ITOA (SSLENGTH JS2)) " ENTITE(S) SELECTIONNE(S)."))
(TERPRI)
(SETQ COMPT 0)
(WHILE (SETQ ENT (SSNAME JS2 COMPT))
(SETQ OBJ (ENTGET ENT)
NVEP (CDR (ASSOC 43 OBJ))
)
(COND ( (WCMATCH TYPELIGN "LIEUX-DIT")
(SETQ NVEP 0.4)
(SETQ OBJ (SUBST (CONS 43 NVEP) (ASSOC 43 OBJ) OBJ))
)
)
(COND ( (WCMATCH TYPELIGN "SECTION")
(SETQ NVEP 0.3)
(SETQ OBJ (SUBST (CONS 43 NVEP) (ASSOC 43 OBJ) OBJ))
)
)
(COND ( (WCMATCH TYPELIGN "COMMUNE1000")
(SETQ NVEP 0.4)
(SETQ OBJ (SUBST (CONS 43 NVEP) (ASSOC 43 OBJ) OBJ))
)
)
(ENTMOD OBJ)
(SETQ COMPT (1+ COMPT))
)
)
)
(SETQ JS3 (SSGET "X" (LIST (CONS 0 "LINE,POLYLINE,LWPOLYLINE")
(CONS 8 "CADASTRE")
)
)
)
(IF JS3
(PROGN
(COMMAND "CHANGER" JS3 "" "PR" "EC" "0.5" "" )
)
)
(COMMAND "_UNDO" "F")
(SETQ *ERROR* ANC_ERR)
(SETVAR "CMDECHO" 1)
(PRINC)
) Je suis preneur de toutes informations pouvant résoudre le problème. Merci d'avance.