Aller au contenu

sechanbask

Membres
  • Compteur de contenus

    1 013
  • Inscription

  • Dernière visite

Tout ce qui a été posté par sechanbask

  1. Je n'ai toujours pas trouvé mon erreur. Je suis donc coincé, pouvez-vous m'aider ?
  2. Je déterre ce sujet car je viens de tester la réponse de bonuscad : ^C^C_copybase "_none" "*0,0,0" pour moi ça ne marche pas il bloque sur _none, mais nous avons autocad 2011, est-ce que ça vient de là ?
  3. Bonjour, je cherche à lancer depuis la commande "tbp", une boite de dialogue qui me permettra de lancer la fonction "embranchement_f" et bien d'autre si ça fonctionne. boite de dialogue tubpvc.dcl PVC_EVAC :dialog{ label = "PVC_EVAC"; :column{ :button{label = "RESEAU"; key = "reseau"; fixed_width = true;} :button{label = "CULOTTE"; key = "culotte"; fixed_width = true;} :button{label = "COUDE"; key = "coude"; fixed_width = true;} :button{label = "PIED DE CHUTTE"; key = "pied_de_chute"; fixed_width = true;} :button{label = "TAMPON"; key = "tampon"; fixed_width = true;} :button{label = "ASSEMBLAGE"; key = "assemblage"; fixed_width = true;} :button{label = "REGARD"; key = "regard"; fixed_width = true;} } :button{label = "ANNULER"; key = "cancel"; is_default = false; is_cancel = true;} } (defun c:tbp() (setq id (load_dialog "tubpvc.dcl")) (new_dialog "PVC_EVAC" id) (action_tile "cancel" "(done_dialog)") (action_tile "reseau" "(reseau_f)") (action_tile "culotte" "(embranchement_f)") (action_tile "coude" "(coude_f)") (start_dialog) (unload_dialog id) ) (defun embranchement_f () (unload_dialog id) (setq diam_pvc (getint "Diamètre :")) (setq str_diam_pvc (itoa diam_pvc)) (initget "Gauche Droite") (setq choix (getkword "\nGauche/Droite <Gauche> :")) (if(= choix "Gauche") (command "_insert" (cond((= str_diam_pvc "100")"culotte_bt144_back.dwg") ((= str_diam_pvc "110")"culotte_bv144_back.dwg") ((= str_diam_pvc "125")"culotte_bx144_back.dwg") (T"culotte_onsaitjamais.dwg")) P2 -1 1 P1) ) (if(= choix "Droite") (command "_insert" (cond((= str_diam_pvc "100")"culotte_bt144_back.dwg") ((= str_diam_pvc "110")"culotte_bv144_back.dwg") ((= str_diam_pvc "125")"culotte_bx144_back.dwg") (T"culotte_onsaitjamais.dwg")) P2 -1 -1 P1) ) )
  4. Problème corrigé, c'était lié à la fin du code, une ligne en trop qui vient de l'éditeur LISP : [VERIFICATION du TEXTE Chargement de tube.lsp...] ... ; Vérification terminée.
  5. QUEL BOULET JE SUIS : Je n'ai pas envoyé le bon code : voici le code qui pose problème : ;dessiner un tube (defun c:tbp() (setq id (load_dialog "tubpvc.dcl")) (new_dialog "PVC_EVAC" id) (action_tile "cancel" "(done_dialog)") (action_tile "culotte" "(Embranchement_f)") (start_dialog) (unload_dialog id) ;;; ICI il manquerait l'enregistrement de l'état de OSMODE (setq diam_pvc (getint "Diamètre :")) (setq P1 (getpoint "premier point :")) (setq P2 (getpoint "second point :")) (command "_line" P1 P2 "") (setq courant_tubpvc (getvar "INSUNITS")) (if (= courant_tubpvc 6) (setq diam_pvc (/ diam_pvc 100)) ) (command "_offset" (/ diam_pvc 2) (entlast) "M" "@-1,0" "@0,-1000" "Q" ) (initget "Embranchement Coude Sortir") (setq choix (getkword "\nEmbranchement/Sortir/Coude <Sortir> :")) (if (= choix "Embranchement") (Embranchement_f) ) (if (= choix "Coude") (Coude_f) ) ;;;Et ici sa restitution ) (defun Embranchement_f () (setq diam_pvc (getint "Diamètre :")) ;transformer la variable diam_pvc en chaine de caractère pour la comparer par la suite (setq str_diam_pvc (itoa diam_pvc)) (unload_dialog id) (initget "Gauche Droite") (setq choix (getkword "\nGauche/Droite <Gauche> :")) (if(= choix "Gauche") (command "_insert" (cond((= str_diam_pvc "100")"culotte_bt144_back.dwg") ((= str_diam_pvc "110")"culotte_bv144_back.dwg") ((= str_diam_pvc "125")"culotte_bx144_back.dwg") (T"culotte_onsaitjamais.dwg")) P2 -1 1 P1) ) (if(= choix "Droite") (command "_insert" (cond((= str_diam_pvc "100")"culotte_bt144_back.dwg") ((= str_diam_pvc "110")"culotte_bv144_back.dwg") ((= str_diam_pvc "125")"culotte_bx144_back.dwg") (T"culotte_onsaitjamais.dwg")) P2 -1 -1 P1) ) ) (defun Coude_f () ;transformer la variable diam_pvc en chaine de carctère pour la comparer par la suite (setq str_diam_pvc (itoa diam_pvc)) (initget "Gauche Droite") (setq choix (getkword "\nGauche/Droite <Gauche> :")) (if(= choix "Gauche") (command "_insert" (cond((= str_diam_pvc "100")"coude_ct44_back") ((= str_diam_pvc "110")"coude_cv44_back") ((= str_diam_pvc "125")"coude_cx44_back") (T"coude_onsaitjamais.dwg")) P2 -1 1 P1) ) (if(= choix "Droite") (command "_insert" (cond((= str_diam_pvc "100")"coude_ct44_back") ((= str_diam_pvc "110")"coude_cv44_back") ((= str_diam_pvc "125")"coude_cx44_back") (T"coude_onsaitjamais.dwg")) P2 -1 -1 P1) ) )[VERIFICATION du TEXTE Chargement de tube.lsp...] ... ; Vérification terminée.
  6. La vérification de la fenêtre via l'IDE me renvoie l'erreur, pas besoin des blocs, le code s'arrête avant l'insertion. je te donne le tubpvc.dcl : PVC_EVAC :dialog{ label = "PVC_EVAC"; :row{ :button{label = "RESEAU"; key = "reseau"; fixed_width = true;} :button{label = "CULOTTE"; key = "culotte"; fixed_width = true;} :button{label = "COUDE"; key = "coude"; fixed_width = true;} :button{label = "PIED DE CHUTTE"; key = "pied_de_chute"; fixed_width = true;} :button{label = "TAMPON"; key = "tampon"; fixed_width = true;} :button{label = "ASSEMBLAGE"; key = "assemblage"; fixed_width = true;} :button{label = "REGARD"; key = "regard"; fixed_width = true;} } :button{label = "ANNULER"; key = "cancel"; is_default = false; is_cancel = true;} }
  7. Bonjour, je rencontre un problème que l'éditeur de lisp me trouve : comment savoir où se trouve l'erreur et pourquoi ? voici mon code : ;dessiner un tube (defun c:tbp() (setq id (load_dialog "tubpvc.dcl")) (new_dialog "PVC_EVAC" id) (action_tile "cancel" "(done_dialog)") (action_tile "culotte" "(Embranchement_f)") (start_dialog) (unload_dialog id) ;;; ICI il manquerait l'enregistrement de l'état de OSMODE (setq diam_pvc (getint "Diamètre :")) (setq P1 (getpoint "premier point :")) (setq P2 (getpoint "second point :")) (command "_line" P1 P2 "") (setq courant_tubpvc (getvar "INSUNITS")) (if (= courant_tubpvc 6) (setq diam_pvc (/ diam_pvc 100)) ) (command "_offset" (/ diam_pvc 2) (entlast) "M" "@-1,0" "@0,-1000" "Q" ) (initget "Embranchement Coude Sortir") (setq choix (getkword "\nEmbranchement/Sortir/Coude <Sortir> :")) (if (= choix "Embranchement") (Embranchement_f) ) (if (= choix "Coude") (Coude_f) ) ;;;Et ici sa restitution ) (defun Embranchement_f () (setq diam_pvc (getint "Diamètre :")) ;transformer la variable diam_pvc en chaine de caractère pour la comparer par la suite (setq str_diam_pvc (itoa diam_pvc)) (unload_dialog id) (initget "Gauche Droite") (setq choix (getkword "\nGauche/Droite <Gauche> :")) (if(= choix "Gauche") (command "_insert" (cond((= str_diam_pvc "100")"culotte_bt144_back.dwg") ((= str_diam_pvc "110")"culotte_bv144_back.dwg") ((= str_diam_pvc "125")"culotte_bx144_back.dwg") (T"culotte_onsaitjamais.dwg")) P2 -1 1 P1) ) (if(= choix "Droite") (command "_insert" (cond((= str_diam_pvc "100")"culotte_bt144_back.dwg") ((= str_diam_pvc "110")"culotte_bv144_back.dwg") ((= str_diam_pvc "125")"culotte_bx144_back.dwg") (T"culotte_onsaitjamais.dwg")) P2 -1 -1 P1) ) ) (defun Coude_f () ;transformer la variable diam_pvc en chaine de carctère pour la comparer par la suite (setq str_diam_pvc (itoa diam_pvc)) (initget "Gauche Droite") (setq choix (getkword "\nGauche/Droite <Gauche> :")) (if(= choix "Gauche") (command "_insert" (cond((= str_diam_pvc "100")"coude_ct44_back") ((= str_diam_pvc "110")"coude_cv44_back") ((= str_diam_pvc "125")"coude_cx44_back") (T"coude_onsaitjamais.dwg")) P2 -1 1 P1) ) (if(= choix "Droite") (command "_insert" (cond((= str_diam_pvc "100")"coude_ct44_back") ((= str_diam_pvc "110")"coude_cv44_back") ((= str_diam_pvc "125")"coude_cx44_back") (T"coude_onsaitjamais.dwg")) P2 -1 -1 P1) ) )[VERIFICATION du TEXTE Chargement de tube.lsp...] ... ; Vérification terminée.
  8. Bonjour, En raison de l'abandon du VBA, je souhaite apprendre le lisp, pour migrer en partie les outils dont j'ai besoin. dans l'éditeur VBA, il était possible de chercher les méthodes pour les fonctions, avec l'éditeur VLISP est-ce possible ? Sinon, où trouvez-vous les commandes ? Par exemple, une commande pour créer un état de calque ?
  9. Et bien, après plusieurs test, je bloque toujours sur DECALER : ;dessiner un tube (defun c:tubpvc () ;;; ICI il manquerait l'enregistrement de l'état de OSMODE (setq diam_pvc (getint "Diamiètre :")) (setq P1 (getpoint "premier point :")) (setq P2 (getpoint "second point :")) (command "_line" P1 P2 "") (setq der (entget (entlast))) (setq coord (cadr (assoc '10 der))) (command "_offset" (/ diam -2.0) der ) (initget "Embranchement Coude Sortir") (setq choix (getkword "\nEmbranchement/Sortir/Coude <Sortir> :")) (if(= choix "Embranchement")(Embranchement_f)) (if(= choix "Coude")(Coude_f)) ;;;Et ici sa restitution ) (defun Embranchement_f () ;transformer la variable diam_pvc en chaine de carctère pour la comparer par la suite (setq str_diam_pvc (itoa diam_pvc) ) (initget "Gauche Droite") (setq choix (getkword "\nGauche/Droite <Gauche> :")) (if(= choix "Gauche") (command "_insert" (cond((= str_diam_pvc "100")"culotte_bt144_back.dwg") ((= str_diam_pvc "110")"culotte_bv144_back.dwg") ((= str_diam_pvc "125")"culotte_bx144_back.dwg") (T"culotte_onsaitjamais.dwg")) P2 -1 1 P1) ) (if(= choix "Droite") (command "_insert" (cond((= str_diam_pvc "100")"culotte_bt144_back.dwg") ((= str_diam_pvc "110")"culotte_bv144_back.dwg") ((= str_diam_pvc "125")"culotte_bx144_back.dwg") (T"culotte_onsaitjamais.dwg")) P2 -1 -1 P1) ) ) (defun Coude_f () ;transformer la variable diam_pvc en chaine de carctère pour la comparer par la suite (setq str_diam_pvc (itoa diam_pvc) ) (initget "Gauche Droite") (setq choix (getkword "\nGauche/Droite <Gauche> :")) (if(= choix "Gauche") (command "_insert" (cond((= str_diam_pvc "100")"coude_ct44_back") ((= str_diam_pvc "110")"coude_cv44_back") ((= str_diam_pvc "125")"coude_cx44_back") (T"coude_onsaitjamais.dwg")) P2 -1 1 P1) ) (if(= choix "Droite") (command "_insert" (cond((= str_diam_pvc "100")"coude_ct44_back") ((= str_diam_pvc "110")"coude_cv44_back") ((= str_diam_pvc "125")"coude_cx44_back") (T"coude_onsaitjamais.dwg")) P2 -1 -1 P1) ) ) voilà l'erreur produite _offset Paramètres courants: Effacer source=Non Calque=Source OFFSETGAPTYPE=0 Spécifiez la distance de décalage ou [Par/Effacer/Calque] <1.0000>: ; erreur: type d'argument incorrect: numberp: nil faut-il récupérer des coordonnées pour les indiquer à la commande _offset ?
  10. bon maintenant que j'ai un peu compris le fonctionnement de tout ça voici mon code : ;dessiner un tube (defun c:tubpvc () ;;; ICI il manquerait l'enregistrement de l'état de OSMODE (setq diam_pvc (getint "Diamiètre :")) (setq P1 (getpoint "premier point :")) (setq P2 (getpoint "second point :")) (command "_line" P1 P2 "") (initget "Embranchement Coude Sortir") (setq choix (getkword "\nEmbranchement/Sortir/Coude <Sortir> :")) (if(= choix "Embranchement")(Embranchement_f)) (if(= choix "Coude")(Coude_f)) ;;;Et ici sa restitution ) (defun Embranchement_f () ;transformer la variable diam_pvc en chaine de carctère pour la comparer par la suite (setq str_diam_pvc (itoa diam_pvc) ) (initget "Gauche Droite") (setq choix (getkword "\nGauche/Droite <Gauche> :")) (if(= choix "Gauche") (command "_insert" (cond((= str_diam_pvc "100")"culotte_bt144_back.dwg") ((= str_diam_pvc "110")"culotte_bv144_back.dwg") ((= str_diam_pvc "125")"culotte_bx144_back.dwg") (T"culotte_onsaitjamais.dwg")) P2 -1 1 P1) ) (if(= choix "Droite") (command "_insert" (cond((= str_diam_pvc "100")"culotte_bt144_back.dwg") ((= str_diam_pvc "110")"culotte_bv144_back.dwg") ((= str_diam_pvc "125")"culotte_bx144_back.dwg") (T"culotte_onsaitjamais.dwg")) P2 -1 -1 P1) ) ) (defun Coude_f () ;transformer la variable diam_pvc en chaine de carctère pour la comparer par la suite (setq str_diam_pvc (itoa diam_pvc) ) (initget "Gauche Droite") (setq choix (getkword "\nGauche/Droite <Gauche> :")) (if(= choix "Gauche") (command "_insert" (cond((= str_diam_pvc "100")"coude_ct44_back") ((= str_diam_pvc "110")"coude_cv44_back") ((= str_diam_pvc "125")"coude_cx44_back") (T"coude_onsaitjamais.dwg")) P2 -1 1 P1) ) (if(= choix "Droite") (command "_insert" (cond((= str_diam_pvc "100")"coude_ct44_back") ((= str_diam_pvc "110")"coude_cv44_back") ((= str_diam_pvc "125")"coude_cx44_back") (T"coude_onsaitjamais.dwg")) P2 -1 -1 P1) ) ) Est-ce que l'on pourrait m'expliquer comment faire pour décaler la ligne de la moitié du diamètre ? j'avais tenter un truc du genre : ;(setq der (entget (entlast))) ;(setq coord (cadr (assoc '10 der))) ;(command "DECALER" (/ diam 2) der @-1 "") mais je n'arrivais pas à grand chose...
  11. je viens de trouver il faut mettre un itoa pour transformer la variable dim en chaine
  12. La commande FIN qui lancera une fonction d'insertion d'un autre bloc. Je ne l'ai pas mise ici. je viens de regarder ton code et de le tester : lorsque que je rentre le diamètre à 100, il ne cherche pas à insérer la bonne culotte pourquoi ? TUBPVC Diamiètre :100 premier point :second point :_line Spécifiez le premier point: Spécifiez le point suivant ou [annUler]: Spécifiez le point suivant ou [annUler]: Commande: Embranchement/Sortir <Sortir> :e _insert Entrez le nom du bloc ou [?]: culotte_onsaitjamais.dwg "culotte_onsaitjamais.dwg": Impossible de trouver le fichier dans le chemin de recherche:
  13. Bonjour, Je cherche à lancer une commande puis une fonction avec paramètre. Je n'ai droit qu'à un nil : ;dessiner un tube (defun c:tubpvc () (setq diam (getint "Diamiètre :")) (setq P1 (getpoint "premier point :")) (setq P2 (getpoint "second point :")) (command "_line" P1 P2 "") ;selectionner l'ancien objet ;et le décaler de la moitié du diamètre ;(setq der (entget (entlast))) ;(setq coord (cadr (assoc '10 der))) ;(command "DECALER" (/ diam 2) der @-1 "") ;(while (setq der (entnext der)) ;(ssadd der js) ;) ;(command "DECALER" diam/2 der "-1" "") (initget 1 "Embranchement Fin") (setq choix (getkword "Embranchement, Fin")) (if (= choix "Embranchement") (Embranchement)) (if (= choix "Fin") (command "Fin")) ) (defun Embranchement () (if (= diam "100") (command "_insert" "culotte_bt144_back.dwg" P2 1 1 pause) ) (if (= diam "110") (command "_insert" "culotte_bv144_back.dwg" P2 1 1 pause) ) (if (= diam "125") (command "_insert" "culotte_bx144_back.dwg" P2 1 1 pause) ) ) pour l'instant je n'arrive pas décaler l'axe des 2 cotés pour faire du bifilaire, mais déjà si j'arrive à insérer les blocs...
  14. Bonjour, Je cherche à créer un script pour supprimer le calque HIDDEN (qui contient des objets), mettre toutes les entités du calque THICK dans le 0 et à purger le tout. J'ai commencé comme ça mais je bloque car la commande _-layer ne se termine pas du coup mon script s'arrête... comment dire ENTRER à mon script ce n'est pas un saut de ligne ? _-layer CH 0 G HIDDEN _ai_selall _laycur _-layer L HIDDEN G 0 CH HIDDEN _ai_selall _erase _-layer CH 0 _qsave Pouvez-vous m'aider ?
  15. merci
  16. merci, comme je débute vraiment du coup l'adaptation entre mon code est tes améliorations me posent problème : _insert Entrez le nom du bloc ou [?]: ; erreur: une erreur est survenue dans la fonction *erreur*paramètre de la variable AutoCAD rejeté: "OSMODE" nil Entrez le nom du bloc ou [?]: *Annuler* j'ai essayé ça mais ça marche point : ;Insertion d'un piquage par le dessus (defun c:sd () (initget "100 125 150") (setq diam_plb_sd_coll (getkword "\nDiamètre collecteur[100/125/150] <100>: ")) (if (not diam_plb_sd_coll) (setq diam_plb_sd_coll "100")) (initget "40 50") (setq diam_plb_sd_piq (getkword "\nDiamètre piquage [40/50] <50>: ")) (if (not diam_plb_sd_piq) (setq diam_plb_sd_piq "50")) (prin1) (command "_insert" (strcat "assemblage_PVC_" (itoa diam_plb_sd_coll) "_" (itoa diam_plb_sd_piq) "_c.dwg") pause 1 1 pause) (princ) ) )
  17. Bonjour, Je cherche à insérer différents blocs en ligne de commande, les blocs sont choisis en fonction des réponses des utilisateurs. Le choix est restreint (diamètre collecteur : 100 125 150) (diamètre piquage 40 50), mais pour l'instant je ne peux pas afficher à l'utilisateur ces différents choix possibles. Plus important, j'aimerais que certaines valeurs soient choisie par défaut pour que l'utilisateur puisse faire entrer sans taper le diamètre collecteur (très souvent en 100) et le diamètre du piquage (très souvent en 50). Voici mon début de code ;Insertion d'un piquage par le dessus (defun c:sd () (setq diam_plb_sd_coll (getint "Diamètre collecteur :")) (setq diam_plb_sd_piq (getint "Diamètre piquage : ")) (command "_insert" (strcat "assemblage_PVC_" (itoa diam_plb_sd_coll) "_" (itoa diam_plb_sd_piq) "_c.dwg") pause 1 1 pause) Pouvez-vous m'apporter un peu d'aide ?
  18. je confirme le "bug"
  19. c'est parfait MERCI MERCI
  20. Bonjour, Je possède un plan architecte un peu lourd car il est exclusivement formée de multilignes (des centaines) avec remplissage + forçage des couleurs. Je ne peux pas les modifier manuelement (?? pourquoi, j'en sais rien). Est-il possible par programmation de passer toutes ses styles de multilignes en couleur "du calque" et sans remplissage ? RDJ extrait Z3.zip
  21. merci pour tout, j'ai finalement pris l'option pour définir le calque : (defun c:RVR() (setq calque_rev (getstring "\nCalque à utiliser pour les nuages de révision : ")) (vlax-ldata-put "calques" "calque_nuage_rev" calque_rev) ) l'utilisation finale : (defun c:CVB() ; affiche une boite mais pour l'instant c'est tout ;(setq Id(load_dialog "RVV.dcl")) ;(new_dialog "bienvenue" Id) ;(start_dialog) (setq courant_cvb (getvar "clayer")) (setq accroche_cvb (getvar "osmode")) (setvar "osmode" 0) (command "clayer" (vlax-ldata-get "calques" "calque_nuage_rev" )) (command "rectangle" pause pause) (setq der_cvb (entlast) js (ssadd)) (if (= 4 (getvar "INSUNITS")) (command "NUAGEREV" "longueur" "500" "500" "objet" der_cvb "non")) (if (= 5 (getvar "INSUNITS")) (command "NUAGEREV" "longueur" "50" "50" "objet" der_cvb "non")) (if (= 6 (getvar "INSUNITS")) (command "NUAGEREV" "longueur" "0.5" "0.5" "objet" der_cvb "non")) (setvar "osmode" accroche_cvb) (command "clayer" courant_cvb ) ) Je pense que je ferais de même pour les cotations...S'il y a des améliorations surtout dans le CVB, n'hésitez pas.
  22. désolé mais j'ai toujours la même erreur après avoir fait la modification et recharger mon lisp : (defun c:prde() (getCustomDwgProp "essai") ) (defun getCustomDwgProp (key / app counter counter2 counter3 doc dwgprops k v) (vl-load-com) (setq App (vlax-Get-Acad-Object) Doc (vla-Get-ActiveDocument App) DwgProps (vla-Get-SummaryInfo Doc) counter 0 counter2 (vla-NumCustomInfo DwgProps) ) (while (< counter counter2) (vla-GetCustomByIndex DwgProps counter 'k 'v) (if (eq key k) (setq counter3 counter) ) (setq counter (+ 1 counter)) ) (setq k nil v nil ) (if counter3 (vla-GetCustomByIndex DwgProps counter3 'k 'v) ) (if v v nil ) ) ça vient de moi ?
  23. je suis un débutant en lisp : j'ai fait un fichier .lsp que j'ai chargé dans autocad et qui contient : (defun c:prde() (getCustomDwgProp "essai") ) (defun getCustomDwgProp (key / app counter counter2 counter3 doc dwgprops k v) (vl-load-com) (setq App (vlax-Get-Acad-Object) Doc (vla-Get-ActiveDocument App) DwgProps (vla-Get-SummaryInfo Doc) counter 0 counter2 (vla-NumCustomInfo DwgProps) ) (while (< counter counter2) (vla-GetCustomByIndex DwgProps counter 'k 'v) (if (eq "fsdf" k) (setq counter3 counter) ) (setq counter (+ 1 counter)) ) (setq k nil v nil ) (if counter3 (vla-GetCustomByIndex DwgProps counter3 'k 'v) ) (if v v nil ) ) et lorsque je le lance, j'ai droit à une seule réponse nil... j'ai dû oublier quelque chose.
  24. Je ne comprends pas en quoi le fil peut m'aider car il ne parle que de xdata que je ne peux pas utiliser. La commande PROPDESS est pratique mais en programmation comment accéder à l'onglet et à l'ajout de variable ??
  25. merci pour cette solution elle me conviendrait dans les 3/4 des dossiers sur lesquels je travaille, mais là mes plans sont vérifiés par des macros, et les macros ne sont commodes, impossible de négocier. Donc je suis preneur d'une solution plus AutoCADémique...
×
×
  • 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é