- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Lien permanent
- Imprimer
- Signaler
Bonjour à tous,
Il m'arrive régulièrement de faire des associations entre scripts-lisps-macro, chacun ayant ses avantages et inconvénients.
Chez moi, un lisp peu donc lancer un script, une macro peu lancer un lisp, etc...
Hors, je suis actuellement sur une macro qui doit lancer un lisp (un lisp qui permet l'insertion d'un bloc externe à l'endroit du clic).
J'ai donc enregistré avec la macro les divers endroit à cliquer mais quand je relance celle-ci, elle bloque dès la premier insertion redemandant le/les points à cliquer, comme si le "get point" n'arrivait pas à s'enregistrer dans la macro.
Voici le code ci dessous, que j'ai trouvé sur ce forum, je ne connais que la base de lisp.
Un grand merci à celui-qui pourra ma débloquer 😉
(vl-load-com)
(defun trunc (xr / )
(itoa (fix (/ xr 1000.0)))
)
(defun c:UB ( / ent_text dxf_ent key file_name folder)
(setq ent_text
(entmakex
(list
(cons 0 "MTEXT")
(cons 100 "AcDbEntity")
(cons 100 "AcDbMText")
(cons 1 "")
(cons 10 (trans (getvar "VIEWCTR") 0 1))
(cons 40 (/ (getvar "VIEWSIZE") 75.0));
(cons 50 (- 0 (getvar "VIEWTWIST")))
(cons 62 250)
(cons 71 7)
(cons 72 5)
(cons 90 1)
(cons 63 255)
(cons 45 1.5)
)
)
dxf_ent (entget ent_text)
)
(while (and (setq key (grread T 4 0)) (/= (car key) 3))
(cond
((eq (car key) 5)
(setq
file_name (strcat (trunc (caadr key)) (trunc (cadadr key)) ".dwg")
dxf_ent (subst (cons 10 (trans (cadr key) 1 0)) (assoc 10 dxf_ent) dxf_ent)
dxf_ent (subst (cons 1 (strcat "{\\fArial;" file_name "}" )) (assoc 1 dxf_ent) dxf_ent)
dxf_ent (subst (cons 40 (/ (getvar "VIEWSIZE") 75.0)) (assoc 40 dxf_ent) dxf_ent)
)
(entmod dxf_ent)
)
)
)
(cond
((eq (car key) 3)
(entdel ent_text)
(setq folder "G:/01Urbis/UrBIS_2016/dwg/") ;;;;;;;;;;;;;;;;;;<<<
(if (findfile (strcat folder file_name))
(progn
(princ (strcat "\nOuvre le fichier: " (strcat folder file_name)))
(command "-inserer" (strcat folder file_name) "0,0,0" "1" "1" "0") ;;;;;;;;;;;;;;;;;;<<<
)
(princ (strcat "\nLe fichier " (strcat folder file_name) " est inexistant!"))
)
)
)
(prin1)
)
Résolu ! Accéder à la solution.