Aller au contenu

Patrick_35

Membres
  • Compteur de contenus

    6 374
  • Inscription

  • Dernière visite

  • Jours gagnés

    30

Tout ce qui a été posté par Patrick_35

  1. Oui, et c'est aussi une façon de de faire qui permet de ne plus joindre de dcl avec un lisp. B) @+
  2. Salut didier J'ai enfin pris le temps pour te donner un exemple ;========================================================================= ; Boite de dialogue ;========================================================================= (defun bd(titre bts / bou bouton btn dcl fil res tmp txt val) (defun bouton (label cle) (if label (write-line (strcat " :button {label = \"" label "\"; key = \"bt" cle "\"; width = 30;}") fil) (write-line (strcat " :button {label = \"\"; key = \"bt" cle "\"; width = 30;}") fil) ) ) (setq tmp (vl-filename-mktemp "rap" nil ".dcl") fil (open tmp "w") ) (foreach txt '( "tst : dialog {" " key = titre;" " is_cancel = true;" " fixed_width = true;" " alignment = centered;" " spacer;" ) (write-line txt fil) ) (setq bou 0) (while (nth bou bts) (write-line " :row {" fil) (bouton (nth bou bts) (itoa bou)) (bouton (nth (1+ bou) bts) (itoa (1+ bou))) (bouton (nth (+ 2 bou) bts) (itoa (+ 2 bou))) (write-line " }" fil) (setq bou (+ bou 3)) ) (foreach txt '( " spacer;" " cancel_button;" "}" ) (write-line txt fil) ) (close fil) (setq dcl (load_dialog tmp)) (new_dialog "tst" dcl "") (set_tile "titre" titre) (mode_tile "accept" 1) (setq bou 0) (repeat (length bts) (action_tile (strcat "bt" (itoa bou)) (strcat "(setq val " (itoa bou) ")(done_dialog 1)")) (setq bou (1+ bou)) ) (action_tile "cancel" "(done_dialog 0)") (setq res (start_dialog)) (if (eq res 1) (alert (strcat "Le calque choisis est " (nth val bts))) ) (unload_dialog dcl) (vl-file-delete tmp) (princ) ) Pour tester (bd "Un Titre" '("Calque1" "Calque2" "Calque3" "Calque4" "Calque5" "Calque6" "Calque7")) @+
  3. Salut Tu as EXL par exemple @+
  4. Ben, comme tu es d'accord que c'est le lisp qui écrit le DCL, tu as la réponse :huh: Je doit rater quelque chose. @+
  5. Salut Cela me rappel ce Challenge @+
  6. Salut Didier Je n'ai pas totocad sous la main, mais tu peux avoir un lisp qui écrit la boite de dialogue, et donc ainsi créer les boutons souhaités ainsi que leurs clés en fonction de tes calques. Le premier bouton pourrai de nommer calque1 avec son label, le second calque2, etc.. Une simple boucle en fonction du nombre de calque. Le seul danger dans ce type de lisp est la taille de l'écran qui risque d'être vite très petit. @+
  7. Ben non, avec Exl (v1.11), seuls les objets visibles dans la/les fenêtre(s) sont normalement exportés. @+
  8. Salut Je ne comprends pas bien le besoin entre exporter des présentations et le type de sélection de (gile) ? @+
  9. Salut J'ai ajouté un nota pour rediriger vers mon blog @+
  10. Patrick_35

    JAV pour Patrick35

    Salut Tu dois avoir une option qui "plante" et n'ayant pas la 2012, difficile de cerner le problème @+
  11. Patrick_35

    Lisps de Patrick_35

    Bonjour Oui, car je trouve que le lisp Tabloblo de Tramber répond mieux à ce besoin. @+
  12. Patrick_35

    Selection par fenêtre.

    Salut Ben non, lors d'une sélection, tu peux faire tout (_all), dernier (_last), précédent (_previous), groupe (_group), ce qui permet sélectionner des objets non visible hors écran. Il y a juste un bémol, c'est avec l'option dernier, car sur une 2006, le dernier était forcement visible, alors qu'avec une 2009, le dernier est le dernier objet dans le dessin. Dommage, c'était bien pratique. @+
  13. Patrick_35

    POSITION DCL

    Par le biais d'un setq Exemple (setq ma_variable (done_dialog 60)) Dans l'aide, il est indiqué pour done_dialog un Return Values (X,Y), ce qui indique que cette fonction retourne comme info la position de la BD. @+
  14. Patrick_35

    POSITION DCL

    Salut Extrait de l'aide pour new_dialog Extrait de l'aide pour done_dialog @+
  15. Salut Patrick Quand je vois le branchement électrique dans la douche, juste un petit rappel à la norme ps : Tu es dans le volume 1 pps : Cloclo a déjà testé ce type d'installation dans une baignoire, donc au brésil, mieux vaux utiliser les bassines pour se laver ;) @+
  16. Rien, ce sont juste des outils et des instructions pour faire ce que tu demandes. @+
  17. Salut Quelques outils (defun liste_imprimantes(/ imp lst) (setq lst (vlax-invoke (vla-get-activelayout doc) 'getplotdevicenames)) (foreach imp (list "Aucun" "None") (setq lst (vl-remove imp lst)) ) lst ) (defun liste_papiers(imp / lay lst old) (setq lay (vla-get-activelayout doc) old (vla-get-configname lay) ) (or (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-configname (list lay imp))) (vla-refreshplotdeviceinfo lay) (setq lst (mapcar '(lambda (x) (vla-getlocalemedianame lay x)) (vlax-invoke lay 'getcanonicalmedianames))) ) (or (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-configname (list lay old))) (vla-refreshplotdeviceinfo lay) ) lst ) (setq doc (vla-get-activedocument (vlax-get-acad-object))) ; pointer sur le dessin courant (setq traceurs (liste_imprimantes)) ; lister les imprimantes (setq actuel "DWG To PDF.pc3") ; définir l'imprimante (setq formats (liste_papiers actuel)) ; lister les formats papier de l'imprimante (setq lay (vla-get-activelayout doc)) ; présentation active (vla-get-canonicalmedianame lay) ; format papier (vla-get-paperunits lay) ; unité du papier : 0=acInches, 1=acMillimeters, 2=acPixels (vla-getpapersize lay 'largeur 'hauteur) ; taille du papier @+
  18. Salut Et avec les variables EXTMIN et EXTMAX ? @+
  19. Patrick_35

    lisp et polyligne

    Salut Oui, en lisp, presque tout est possible. Il suffit juste de se prendre par la main ;) @+
  20. Salut Ici (action_tile "liste" "(setq pos $value)") @+
  21. Salut Un exemple Le DCL Exemple : dialog { key = "titre"; width = 40; : popup_list {key = "liste";} spacer; ok_cancel; } Le lisp (defun c:exemple(/ doc dcl lst pos res) (if (setq dcl (findfile "exemple.dcl")) (progn (setq dcl (load_dialog dcl) lst '("1" "2" "3" "4" "5" "6" "7" "8" "9" "10") pos "0" ) (while (not (member res '(0 1))) (new_dialog "Exemple" dcl) (set_tile "titre" "Exemple V1.00") (start_list "liste") (mapcar 'add_list lst) (end_list) (set_tile "liste" "0") (mode_tile "liste" 2) (action_tile "liste" "(setq pos $value)") (action_tile "cancel" "(done_dialog 0)") (action_tile "accept" "(done_dialog 1)") (setq res (start_dialog)) ) (unload_dialog dcl) (if (eq res 1) (alert (strcat "Le choix est " (nth (atoi pos) lst))) (alert "La fonction a été annulée") ) ) (alert "Le fichier EXEMPLE.DCL est introuvable.") ) (princ) ) @+
  22. Patrick_35

    localiser attribut

    Salut Et avec OUA ? @+
  23. Tu as cette routine de (gile) (defun remove_doubles (lst) (if lst (cons (car lst) (remove_doubles (vl-remove (car lst) lst))) ) ) @+
  24. Salut On retrouve tous mes lisps sur mon blog (en bas de ma signature) Ceux de la page de Cadxp sont désactivés @+
  25. Salut J'ai pas tout compris Un truc dans ce style ? (setq lst '((20.0 1649.5) (418.0 1649.5) (343.0 1612.0) (418.0 1574.5) (343.0 1537.0) (418.0 1499.5) (343.0 1462.0) (418.0 1424.5) (343.0 1387.0)(418.0 1349.5) (343.0 1312.0) (418.0 1274.5) (343.0 1237.0) (418.0 1199.5) (343.0 1162.0) (418.0 1124.5) (343.0 1087.0) (418.0 1049.5)(343.0 1012.0) (418.0 974.5) (343.0 937.0) (418.0 899.5) (343.0 862.0) (418.0 824.5) (343.0 787.0) (418.0 749.5) (343.0 712.0) (418.0 674.5)(343.0 637.0) (418.0 599.5) (343.0 562.0) (343.0 462.75) (463.0 342.75) (567.75 342.75) (605.25 417.75) (642.75 342.75) (680.25 417.75)(717.75 342.75) (755.25 417.75) (792.75 342.75) (830.25 417.75) (867.75 342.75) (905.25 417.75) (942.75 342.75) (980.25 417.75)(1017.75 342.75) (1055.25 417.75) (1092.75 342.75) (1130.25 417.75) (1167.75 342.75) (1205.25 417.75) (1242.75 342.75) (1280.25 417.75))); définir une liste ;trier suivant les coordonnées Y puis X si les Y sont identiques (setq lst (vl-sort lst '(lambda(a b)(if (eq (cadr a) (cadr b)) (< (car a) (car b)) (< (cadr a) (cadr b)) ) ) ) ) Ou une boucle pour avoir des listes avec des Y identiques (while lst (setq idemy (vl-remove-if-not '(lambda(x) (eq (cadr x) (cadar lst))) lst) lst (vl-remove-if '(lambda(x) (eq (cadr x) (cadar lst))) lst) ) (terpri) (princ idemy) ) @+
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité