PHILPHIL Posté(e) le 12 novembre 2007 Posté(e) le 12 novembre 2007 bonsoir j'ai un petit LISp qui me permet de justifier les textes mtext par une boite de dialoguerapide avec des gros boutonsil est pas moi ca c'est sur il marchait bien sous 2005 2006 mais ne fonctionne plus ou est le bug ??? ;//Elise Moss ;//Moss Designs ;//12/30/98 ;//18-04-2001 PBO ;//www.mossdesigns.com ;// ; *** JUSTIFY1.LSP *** ; ; Changes the justification of text to:- ; Left, Center, Right, Aligned, Middle, Fit, ; Bottom left, center or right, ; Middle left, center or right, OR ; Top left, center of right ;(defun C:JU (/;;; a a1 a2 a3 a4 t1 m n p1 p q n1 j j0 n2 j1 j2 q1 index dummy ) (setvar "cmdecho" 0);;;(graphscr) (prompt "\n * SELECTIONNER LE TEXTE POUR CHANGER LA JUSTIFICATION...") (setq T1 (ssget)) (setq NUM (load_dialog "justify2.dcl")) (new_dialog "justify" NUM) (set_tile "L" "1") (action_tile "accept" "(do_getent)(done_dialog)") (start_dialog) (DO_CHANGE)) (defun DO_GETENT () (if (= "1" (get_tile "L")) (setq J1 "L") ) (if (= "1" (get_tile "C")) (setq J1 "C") ) (if (= "1" (get_tile "R")) (setq J1 "R") ) (if (= "1" (get_tile "TL")) (setq J1 "TL") ) (if (= "1" (get_tile "TC")) (setq J1 "TC") ) (if (= "1" (get_tile "TR")) (setq J1 "TR") ) (if (= "1" (get_tile "ML")) (setq J1 "ML") ) (if (= "1" (get_tile "MC")) (setq J1 "MC") ) (if (= "1" (get_tile "MR")) (setq J1 "MR") ) (if (= "1" (get_tile "BL")) (setq J1 "BL") ) (if (= "1" (get_tile "BC")) (setq J1 "BC") ) (if (= "1" (get_tile "BR")) (setq J1 "BR") )) (defun DO_CHANGE () (setq M (sslength T1) INDEX 0 ) (repeat M (setq A (entget (ssname T1 INDEX)) P (cdr (assoc 0 A)) ) (if (= P "TEXT") (progn (setq J (assoc 72 A) J2 (assoc 73 A) P (assoc 10 A) Q (assoc 11 A) J0 (cdr J) ) (if (or (= J1 "L") (= J1 "C") (= J1 "R") (= J1 "M") (= J1 "BL") (= J1 "BC") (= J1 "BR") (= J1 "ML") (= J1 "MC") (= J1 "MR") (= J1 "TL") (= J1 "TC") (= J1 "TR") ) (if (= J0 0) (progn (setq P1 (cdr P) Q1 (cons (car Q) P1) N1 (subst Q1 Q A) ) ) (progn (setq Q1 (cdr Q) P1 (cons (car P) Q1) N1 (subst P1 P A) ) ) ) ) (cond ((= J1 "L") (setq N (subst '(72 . 0) J N1)) (setq N (subst '(73 . 0) J2 N))) ((= J1 "C") (setq N (subst '(72 . 1) J N1)) (setq N (subst '(73 . 0) J2 N))) ((= J1 "R") (setq N (subst '(72 . 2) J N1)) (setq N (subst '(73 . 0) J2 N))) ((= J1 "BL") (setq N (subst '(72 . 0) J N1)) (setq N (subst '(73 . 1) J2 N))) ((= J1 "BC") (setq N (subst '(72 . 1) J N1)) (setq N (subst '(73 . 1) J2 N))) ((= J1 "BR") (setq N (subst '(72 . 2) J N1)) (setq N (subst '(73 . 1) J2 N))) ((= J1 "MC") (setq N (subst '(72 . 1) J N1)) (setq N (subst '(73 . 2) J2 N))) ((= J1 "ML") (setq N (subst '(72 . 2) J N1)) (setq N (subst '(73 . 2) J2 N))) ((= J1 "MR") (setq N (subst '(72 . 0) J N1)) (setq N (subst '(73 . 2) J2 N))) ((= J1 "TL") (setq N (subst '(72 . 0) J N1)) (setq N (subst '(73 . 3) J2 N))) ((= J1 "TC") (setq N (subst '(72 . 1) J N1)) (setq N (subst '(73 . 3) J2 N))) ((= J1 "TR") (setq N (subst '(72 . 2) J N1)) (setq N (subst '(73 . 3) J2 N))) ) (entmod N) ) ) (if (= P "MTEXT") (progn (setq J (assoc 71 A)) (cond ((= J1 "BL") (setq N (subst '(71 . 7) J A))) ((= J1 "BC") (setq N (subst '(71 . 8) J A))) ((= J1 "BR") (setq N (subst '(71 . 9) J A))) ((= J1 "ML") (setq N (subst '(71 . 6) J A))) ((= J1 "MC") (setq N (subst '(71 . 5) J A))) ((= J1 "MR") (setq N (subst '(71 . 4) J A))) ((= J1 "TL") (setq N (subst '(71 . 1) J A))) ((= J1 "TC") (setq N (subst '(71 . 2) J A))) ((= J1 "TR") (setq N (subst '(71 . 3) J A))) ) (entmod N) ) ) (if (= P "ATTDEF") (progn (setq J (assoc 72 A) J2 (assoc 73 A) P (assoc 10 A) Q (assoc 11 A) J0 (cdr J) ) (if (or (= J1 "L") (= J1 "C") (= J1 "R") (= J1 "M") (= J1 "BL") (= J1 "BC") (= J1 "BR") (= J1 "ML") (= J1 "MC") (= J1 "MR") (= J1 "TL") (= J1 "TC") (= J1 "TR") ) (if (= J0 0) (progn (setq P1 (cdr P) Q1 (cons (car Q) P1) N1 (subst Q1 Q A) ) ) (progn (setq Q1 (cdr Q) P1 (cons (car P) Q1) N1 (subst P1 P A) ) ) ) ) (cond ((= J1 "L") (setq N (subst '(72 . 0) J N1)) (setq N (subst '(73 . 0) J2 N))) ((= J1 "C") (setq N (subst '(72 . 1) J N1)) (setq N (subst '(73 . 0) J2 N))) ((= J1 "R") (setq N (subst '(72 . 2) J N1)) (setq N (subst '(73 . 0) J2 N))) ((= J1 "BL") (setq N (subst '(72 . 0) J N1)) (setq N (subst '(73 . 1) J2 N))) ((= J1 "BC") (setq N (subst '(72 . 1) J N1)) (setq N (subst '(73 . 1) J2 N))) ((= J1 "BR") (setq N (subst '(72 . 2) J N1)) (setq N (subst '(73 . 1) J2 N))) ((= J1 "MC") (setq N (subst '(72 . 1) J N1)) (setq N (subst '(73 . 2) J2 N))) ((= J1 "ML") (setq N (subst '(72 . 2) J N1)) (setq N (subst '(73 . 2) J2 N))) ((= J1 "MR") (setq N (subst '(72 . 0) J N1)) (setq N (subst '(73 . 2) J2 N))) ((= J1 "TL") (setq N (subst '(72 . 0) J N1)) (setq N (subst '(73 . 3) J2 N))) ((= J1 "TC") (setq N (subst '(72 . 1) J N1)) (setq N (subst '(73 . 3) J2 N))) ((= J1 "TR") (setq N (subst '(72 . 2) J N1)) (setq N (subst '(73 . 3) J2 N))) ) (entmod N) ) ) (setq INDEX (+ INDEX 1)) ) (prin1) (princ " Changed ") (princ INDEX) (princ " text lines.") (princ)) boite de dialogue si les boutons pouvait etre sur 4 lignes au lieux de 12 et sans avoir besoin du bouton ok // JUSTIFY2.DCL // AutoLISP Dialog Box Program Menu justify : dialog { label = "JUSTIFICATION DU TEXTE"; : boxed_radio_column { label = "Please Select Menu Item...."; width = 70; : button { alignment = left; fixed_width = true; label = "HAUT GAUCHE"; key = "TL"; } : button { alignment = centered; fixed_width = true; label = "HAUT CENTRE"; key = "TC"; } : button { alignment = right; fixed_width = true; label = "HAUT DROITE"; key = "TR"; } : button { alignment = left; fixed_width = true; label = "MILIEU GAUCHE"; key = "MR"; } : button { alignment = centered; fixed_width = true; label = "MILIEU CENTRE"; key = "MC"; } : button { alignment = right; fixed_width = true; label = "MILIEU DROITE"; key = "ML"; } : button { alignment = left; fixed_width = true; label = "GAUCHE"; key = "L"; } : button { alignment = centered; fixed_width = true; label = "CENTRE"; key = "C"; } : button { alignment = right; fixed_width = true; label = "DROITE"; key = "R"; } : button { alignment = left; fixed_width = true; label = "BAS GAUCHE"; key = "BL"; } : button { alignment = centered; fixed_width = true; label = "BAS CENTRE"; key = "BC"; } : button { alignment = right; fixed_width = true; label = "BAS DROITE"; key = "BR"; }// : boxed_column {// label = "POINT D'INSERTION";// key = "BR";// } }spacer; ok_cancel;} [Edité le 12/11/2007 par PHILPHIL] [Edité le 12/11/2007 par PHILPHIL] FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 13 novembre 2007 Posté(e) le 13 novembre 2007 Salut, Je suis très étonné que ce LISP ait pu marcher en l'état.Il est prévu pour fonctionner avec des boutons radio et dans la boite de dialogue, à l'intérieur d'une boxed_radio_column on trouve des button au lieu de radio_button, ce qui ne retourne pas la même chose en cas d'activation. Bref, j'ai remis dans la boite des radio_button, et un peu "nettoyé" le LISP (ajout d'un unload_dialog absent, suppression de lignes inutiles ou redondantes, déclaration des variables) Ça semble fonctionner (pas testé en profondeur) Le LISP ;//Elise Moss ;//Moss Designs ;//12/30/98 ;//18-04-2001 PBO ;//www.mossdesigns.com ;// ; *** JUSTIFY1.LSP *** ; ; Changes the justification of text to:- ; Left, Center, Right, Aligned, Middle, Fit, ; Bottom left, center or right, ; Middle left, center or right, OR ; Top left, center of right ; (defun c:ju (/ dcl_ig j1) (prompt "\n * SELECTIONNER LE TEXTE POUR CHANGER LA JUSTIFICATION..." ) (if (setq T1 (ssget '((0 . "*TEXT,ATTDEF")))) (progn (setq dcl_id (load_dialog "justify3.dcl")) (if (not (new_dialog "justify" dcl_id)) (exit) ) (mode_tile "accept" 1) (foreach k '("L" "C" "R" "TL" "TC" "TR" "ML" "MC" "MR" "BL" "BC" "BR") (action_tile k (strcat "(setq j1 " (vl-prin1-to-string k) ")(done_dialog)" ) ) ) ;(action_tile "accept" "(done_dialog)") (action_tile "cancel" "(setq j1 nil)") (start_dialog) (unload_dialog dcl_id) (and j1 (do_change t1 j1)) ) ) ) (defun DO_CHANGE (T1 J1 / M INDEX A P J J2 Q J0 P1 Q1 N1) (setq M (sslength T1) INDEX 0 ) (repeat M (setq A (entget (ssname T1 INDEX)) P (cdr (assoc 0 A)) ) (if (= P "MTEXT") (progn (setq J (assoc 71 A)) (cond ((= J1 "BL") (setq N (subst '(71 . 7) J A))) ((= J1 "BC") (setq N (subst '(71 . 8) J A))) ((= J1 "BR") (setq N (subst '(71 . 9) J A))) ((= J1 "ML") (setq N (subst '(71 . 4) J A))) ((= J1 "MC") (setq N (subst '(71 . 5) J A))) ((= J1 "MR") (setq N (subst '(71 . 6) J A))) ((= J1 "TL") (setq N (subst '(71 . 1) J A))) ((= J1 "TC") (setq N (subst '(71 . 2) J A))) ((= J1 "TR") (setq N (subst '(71 . 3) J A))) ) ) (progn (if (= P "TEXT") (setq F 73) (setq F 74) ) (setq J (assoc 72 A) J2 (assoc F A) P (assoc 10 A) Q (assoc 11 A) J0 (cdr J) ) (if (= (cdr J) (cdr J2) 0) (setq P1 (cdr P) Q1 (cons (car Q) P1) N1 (subst Q1 Q A) ) (setq Q1 (cdr Q) P1 (cons (car P) Q1) N1 (subst P1 P A) ) ) (cond ((= J1 "L") (setq N (subst (cons F 0) J2 (subst '(72 . 0) J N1))) ) ((= J1 "C") (setq N (subst (cons F 0) J2 (subst '(72 . 1) J N1))) ) ((= J1 "R") (setq N (subst (cons F 0) J2 (subst '(72 . 2) J N1))) ) ((= J1 "BL") (setq N (subst (cons F 1) J2 (subst '(72 . 0) J N1))) ) ((= J1 "BC") (setq N (subst (cons F 1) J2 (subst '(72 . 1) J N1))) ) ((= J1 "BR") (setq N (subst (cons F 1) J2 (subst '(72 . 2) J N1))) ) ((= J1 "ML") (setq N (subst (cons F 2) J2 (subst '(72 . 0) J N1))) ) ((= J1 "MC") (setq N (subst (cons F 2) J2 (subst '(72 . 1) J N1))) ) ((= J1 "MR") (setq N (subst (cons F 2) J2 (subst '(72 . 2) J N1))) ) ((= J1 "TL") (setq N (subst (cons F 3) J2 (subst '(72 . 0) J N1))) ) ((= J1 "TC") (setq N (subst (cons F 3) J2 (subst '(72 . 1) J N1))) ) ((= J1 "TR") (setq N (subst (cons F 3) J2 (subst '(72 . 2) J N1))) ) ) ) ) (entmod N) (setq INDEX (+ INDEX 1)) ) (prin1) (princ " Changed ") (princ INDEX) (princ " text lines.") ) Le DCL, à enregistrer sous Justify3.dcl // JUSTIFY3.DCL // AutoLISP Dialog Box Program Menu justify : dialog { label = "JUSTIFICATION DU TEXTE"; : boxed_row { key = "JUST"; :column{ : button { width = 12; label = "HAUT GAUCHE"; key = "TL"; allow_accept=true; } : button { width = 12; label = "MILIEU GAUCHE"; key = "ML"; allow_accept=true; } : button { width = 12; label = "GAUCHE"; key = "L"; allow_accept=true; } : button { width = 12; label = "BAS GAUCHE"; key = "BL"; allow_accept=true; } } :column{ : button { width = 12; label = "HAUT CENTRE"; key = "TC"; allow_accept=true; } : button { width = 12; label = "MILIEU CENTRE"; key = "MC"; allow_accept=true; } : button { width = 12; label = "CENTRE"; key = "C"; allow_accept=true; } : button { width = 12; label = "BAS CENTRE"; key = "BC"; allow_accept=true; } } :column{ : button { width = 12; label = "HAUT DROITE"; key = "TR"; allow_accept=true; } : button { width = 12; label = "MILIEU DROITE"; key = "MR"; allow_accept=true; } : button { width = 12; label = "DROITE"; key = "R"; allow_accept=true; } : button { width = 12; label = "BAS DROITE"; key = "BR"; allow_accept=true; } } } spacer; cancel_button; } [Edité le 13/11/2007 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 13 novembre 2007 Auteur Posté(e) le 13 novembre 2007 SALUT GILE merci je viens de testerpetit soucisle fait de changer la justification du texte ou mtextchange la position du texte ou mtxt contrairement a la fonction"justifiertexte" est un parametre autocad a changer ?? mais il y a peut etre une piste a suivre certains voudront peut etrebouger le texte en fonction de la justificationet d'autre seulement changer la justification du texte sans le bouger ca a son importance une fois que le "mtext" a un ou des "leader" avec les "radio_button" dans le DCL il y a un truc bizarreon peut cocher trois boutons a la fois un par collone repasser avec de "button" serait plus simple et pratique et plus rapideun seul clic sur le bon bouton sans passer par le bouton "ok" bonne journée phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 13 novembre 2007 Posté(e) le 13 novembre 2007 Salut, le fait de changer la justification du texte ou mtextchange la position du texte ou mtxt Je n'ai rien modifié (juste nettoyé) dans le LISP qui modifie la justification, ça devait déjà fonctionner come ça avant, non ? repasser avec de "button" serait plus simple et pratique et plus rapide Comme dit plus haut, les boutons et radio boutons n'ont pas le même effet : les premiers déclencent une action, les seconds retourne "1" ou "0" selon qu'ils sont cochés ou non.Revenir à des boutons supposerait reprendre le LISP en conséquence, je verrais si j'ai le temps. En attendant, la fenêtre des Propriétés le fait bien, non ? ;) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 13 novembre 2007 Auteur Posté(e) le 13 novembre 2007 loll ouiiiii la fenetre de propriete le fait a+ phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 13 novembre 2007 Posté(e) le 13 novembre 2007 Re, J'ai modifié le code, : remplacé les boutons radio par des boutons et corrigé quelques erreurs, ça semble bien fonctionner maintenant. Il faut tout recharger LISP et DCL. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 13 novembre 2007 Auteur Posté(e) le 13 novembre 2007 SALUT GILE ca marche tres bien c'est la fonction des express tools "TJUST" qui permet de rejustifier les "texte" "mtext" sans qu'ils ne bougent a+ phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 13 novembre 2007 Posté(e) le 13 novembre 2007 J'ai finalement ré-écrit le LISP à ma façon, je pense qu'il correspond maintenant à ta demande, j'ai rajouté une case à cocher (toggle) pour choisir si le point d'insertion est fixe ou non (auquel cas c'est le texte qui ne bouge pas). Ça semble fonctionner quelque soit la rotation et le SCO de l'objet. Je reste étonné que le code que tu donnes au début du sujet ait pu marcher dans une quelconque version. Le LISP (defun c:ju (/ ss dcl_ig just ins) (if (setq ss (ssget '((0 . "*TEXT,ATTDEF")))) (progn (or (getenv "PointInsertionFixe") (setenv "PointInsertionFixe" "1") ) (setq dcl_id (load_dialog "justify.dcl")) (if (not (new_dialog "justify" dcl_id)) (exit) ) (set_tile "ins" (getenv "PointInsertionFixe")) (foreach k '("G" "C" "D" "HG" "HC" "HD" "MG" "MC" "MD" "BG" "BC" "BD") (action_tile k (strcat "(setq just " (vl-prin1-to-string k) ")(if (= \"1\" (get_tile \"ins\")) (setq ins T) (setq ins nil)) (done_dialog)" ) ) ) (action_tile "cancel" "(setq just nil)") (start_dialog) (unload_dialog dcl_id) (if ins (setenv "PointInsertionFixe" "1") (setenv "PointInsertionFixe" "0") ) (and just (justify ss just ins)) ) ) (princ) ) (defun justify (ss just ins / n elst org pos oj nj x y ang mat dep vert) (repeat (setq n (sslength ss)) (setq elst (entget (ssname ss (setq n (1- n)))) org (cdr (assoc 10 elst)) ) (if (= (cdr (assoc 0 elst)) "MTEXT") (progn (setq oj (cdr (assoc 71 elst)) pos (vl-position just '("HG" "HC" "HD" "MG" "MC" "MD" "BG" "BC" "BD") ) elst (subst (cons 71 (1+ pos)) (assoc 71 elst) elst) ) (entmod elst) (if (not ins) (progn (setq elst (entget (cdr (assoc -1 elst))) nj (cdr (assoc 71 elst)) y (cond ((member oj '(1 2 3)) (cond (( (( (T (- (cdr (assoc 43 elst)))) ) ) ((member oj '(4 5 6)) (cond (( (( (T (/ (cdr (assoc 43 elst)) -2.)) ) ) ((member oj '(7 8 9)) (cond (( (( (T 0) ) ) ) x (cond ((member oj '(1 4 7)) (cond ((member nj '(1 4 7)) 0) ((member nj '(2 5 8)) (/ (cdr (assoc 42 elst)) 2.)) (T (cdr (assoc 42 elst))) ) ) ((member oj '(2 5 8)) (cond ((member nj '(1 4 7)) (/ (cdr (assoc 42 elst)) -2.)) ((member nj '(2 5 8)) 0) (T (/ (cdr (assoc 42 elst)) 2.)) ) ) ((member oj '(3 6 9)) (cond ((member nj '(1 4 7)) (- (cdr (assoc 42 elst)))) ((member nj '(2 5 8)) (/ (cdr (assoc 42 elst)) -2.)) (T 0) ) ) ) ) (setq ang (angle '(0 0 0) (trans (cdr (assoc 11 elst)) 0 (cdr (assoc 210 elst))) ) mat (mxm (mapcar (function (lambda (v) (trans v 0 (cdr (assoc 210 elst))) ) ) '((1 0 0) (0 1 0) (0 0 1)) ) (list (list (cos ang) (- (sin ang)) 0) (list (sin ang) (cos ang) 0) '(0 0 1) ) ) dep (mxv mat (list x y 0.0)) ) (entmod (subst (cons 10 (mapcar '+ (cdr (assoc 10 elst)) dep) ) (assoc 10 elst) elst ) ) ) ) ) (progn (if (= (cdr (assoc 0 elst)) "TEXT") (setq vert 73) (setq vert 74) ) (if (= (cdr (assoc 72 elst)) (cdr (assoc vert elst)) 0) (setq elst (subst (cons 11 org) (assoc 11 elst) elst) ) (setq elst (subst (cons 10 (cdr (assoc 11 elst))) (assoc 10 elst) elst) ) ) (setq elst (subst (cons vert (cond ((wcmatch just "B*") 1) ((wcmatch just "M*") 2) ((wcmatch just "H*") 3) (T 0) ) ) (assoc vert elst) (subst (cons 72 (cond ((wcmatch just "*G") 0) ((wcmatch just "*C") 1) ((wcmatch just "*D") 2) ) ) (assoc 72 elst) elst ) ) ) (entmod elst) (if (not ins) (progn (setq elst (entget (cdr (assoc -1 elst)))) (if (= (cdr (assoc 72 elst)) (cdr (assoc vert elst)) 0) (entmod (subst (cons 10 org) (assoc 10 elst) elst)) (progn (setq dep (mapcar '- org (cdr (assoc 10 elst)))) (entmod (subst (cons 11 (mapcar '+ (cdr (assoc 11 elst)) dep)) (assoc 11 elst) elst ) ) ) ) ) ) ) ) ) ) ;; transpose une matrice (Doug Wilson) (defun trp (m) (apply 'mapcar (cons 'list m)) ) ;; Applique une matrice de transformation à un vecteur (Vladimir Nesterovsky) (defun mxv (m v) (mapcar (function (lambda (r) (apply '+ (mapcar '* r v)))) m ) ) ;; Multiplie deux matrices (Vladimir Nesterovsky) (defun mxm (m q) (mapcar (function (lambda (r) (mxv (trp q) r))) m) ) Le DCL renommé justify.dcl // Justify.dcl justify : dialog { label = "Justification des textes"; : boxed_row { :column{ : button { width = 12; label = "Haut Gauche"; key = "HG"; allow_accept=true; } : button { width = 12; label = "Milieu Gauche"; key = "MG"; allow_accept=true; } : button { width = 12; label = "Gauche"; key = "G"; allow_accept=true; } : button { width = 12; label = "Bas Gauche"; key = "BG"; allow_accept=true; } } :column{ : button { width = 12; label = "Haut Centre"; key = "HC"; allow_accept=true; } : button { width = 12; label = "Milieu Centre"; key = "MC"; allow_accept=true; } : button { width = 12; label = "Centre"; key = "C"; allow_accept=true; } : button { width = 12; label = "Bas Centre"; key = "BC"; allow_accept=true; } } :column{ : button { width = 12; label = "Haut Droite"; key = "HD"; allow_accept=true; } : button { width = 12; label = "Milieu Droite"; key = "MD"; allow_accept=true; } : button { width = 12; label = "Droite"; key = "D"; allow_accept=true; } : button { width = 12; label = "Bas Droite"; key = "BD"; allow_accept=true; } } } spacer; :toggle{ label = "Point d'insertion fixe"; key = "ins"; } spacer; cancel_button; } [Edité le 14/11/2007 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 14 novembre 2007 Auteur Posté(e) le 14 novembre 2007 ok merci ca marche avec tous les LISp que tu as fait a droite a guauche suivant les demande tu peux completer ta propre liste sur ta page non ??? ca doit en interesser d'autres phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant