-
Compteur de contenus
89 -
Inscription
-
Dernière visite
Tout ce qui a été posté par GER-onimo
-
Bonjour je tiens de suite à préciser que je n'y connais rien en codage Lisp. Mes derniers codes remontent il y a 20ans sur la console de Mirc en Java Script, et encore j'étais pas très bon...! Hier j'ai écris, non sans mal , une petite routine qui me permet de basculer rapidement d'une configuration au Mètre vers une configuration au Millimètre sur autocad full 2018. Pourquoi ce basculement ? pour différentes raisons liées à l'échelle des blocs de ma palette, aux plans externes ...etc (defun C:CONVMM () (command "insunitsdefsource" "6") (command "dimscale" "1000") (command "dimlfac" "1") (command "mleaderscale" "1000") (command "modemacro" "Mètre = 4 Millimètre = 6 : $(getvar, insunitsdefsource)") ) Je sais c'est pas pas terrible (j'ai honte) face aux ténors de l'Autolisp tel que Gilles ... etc mais bon ça m'aide :unsure: Comme vous le voyez je termine le code par un modemacro qui me permet d'afficher sur la barre d'état d'autocad, si le plan est au Mètre ou au Millimètre. mais l'expression ne retourne que la valeur de la variable ; "4" ou "6" .J'aimerais qu'elle retourne seulement le texte de la valeur "Mètre" ou "Millimètre" Par ailleurs le modemacro n'existe que si la commande est lancée , j'aimerais la voir même si la commande n'est pas active. Merci à vous :)
-
Je suis tombé un peu par hasard sur ce topic en mémoire de Patrick. Je ne viens pas souvent sur le site et j'apprend cette nouvelle ce jour. Je ne connais pas Patrick mais je connais ses Lisp ainsi je partage la tristesse de ceux qui le connaissent davantage. Mes condoléances à la famille et aux proches.
-
Ok merci :)
-
Bonjour Je travaille actuellement sur un plan dont la base n'est pas issu de mon entreprise. Sur ce plan, je constate que lorsque je place une côte elle est automatiquement routée vers le calque "côtes" correspondant alors que je suis sur le "0" Courant. J'ai beau chercher d'ou ça vient je ne trouve rien dans les propriétés, options ou autre...J'aimerais bien savoir... je trouve l'option intéressante. Merci ;)
-
réinitialisation des blocs sur copier/coller
GER-onimo a répondu à un(e) sujet de GER-onimo dans AutoCAD 2018
Non ils ne sont pas dans le fichier de destination... Je précise tout de même que je parle de blocs dynamiques, que j'ai moi même configurés avec des paramètres de visibilité -
réinitialisation des blocs sur copier/coller
GER-onimo a répondu à un(e) sujet de GER-onimo dans AutoCAD 2018
Oui c'est une idée mais ça fait de la manip en plus... Créer un bloc ( B ) avec des blocs imbriqués dans le dessin courant et le décomposer sur le fichier de destination revient au même et c'est ce que j'ai fini par faire. Mais pour gagner du temps et de la manip je me demandais si une variable quelconque pouvait éviter la réini des blocs apres collage -
Bonjour les autocadiens C'est un problème que j'observe depuis de nombreuses années sur Autocad...mais là ça devient problématique pour le travail que j'ai à fournir. Lorsque je fais une copie d'objets contenant entre autre des blocs depuis un fichier et qu'ensuite je colle l'ensemble sur un autre fichier les blocs inclus se réinitialise, du moins certain pas tous. Existe t'il une variable ou une astuce permettant un copie " conforme " des blocs d'un fichier vers un autre. Attention! ce n'est pas un problème d'échelle. merci :)
-
ha super je teste !! merci
-
ha oui sympa !! en fait j'utilise ACAD_ISO08W100 avec un nom spécifique " Axes tubes ". En fait je suis projeteur en grosses installations hydrauliques et j'ai pas mal de tuyauterie à dessiner avec axes en épaisseur 0.09. Mais tu semblais le parler d'un lisp sur ton premier post qui fonctionnerait comme L'enregistreur d'action!?
-
arf...! je me doutais un peu que ça fonctionnait comme la variable MULTIPLE, c'est plus galère. Merci grandss
-
J'ai essayé... la sélection se perd une fois que l'enregistrement démarre. Donc ça t'oblige à sélectionner une nouvelle fois l'objet lors de l'enregistrement ... et on revient au même stade!
-
Bonjour! J'ai un peu de mal avec cette commande! En suivant les aides d'Autocad la gestion des macros d'action ne me satisfait pas. Malgré les vidéos que j'ai pu visionner il y a quelque chose qui m'échappe. Donc voila comment je procède : Je lance la commande d'enregistrement. Proche de la flèche de la souris, apparait un point rouge signifiant que mes actions seront enregistrées. Mon but est de sélectionner une ligne de lui adopter un type de ligne (un axe) et dans la foulée lui attribuer une épaisseur (0.09). Une fois les actions enregistrées j'arrête la commande et je donne un nom à la macro. Ensuite Je ferme la fenêtre, je sélectionne une ligne et lance ma macro d'action. Dans un premier temps ça sélectionne la ligne qui m'a servi de référence à l'action et ce n'est pas du tout ce que je souhaite puisque la ligne est déjà modifiée (axe + épaisseur). Si je supprime cette ligne de référence, je lance la macro, je sélectionne une autre ligne et ça me dit que rien n'est sélectionné et affiche la vue où la ligne de référence était placée (celle supprimée). A partir de là je sélectionne une nouvelle ligne ailleurs sur le dessin et la macro applique l'action... Pas logique!!! Ce que je ne saisi pas c'est la sélection systématique de l'objet de référence à l'action s'il existe et le changement de vue une fois l'objet référence supprimé et, suite à cela, l'action fonctionne. Les options de restauration de vue ne fonctionnent pas cochées ou non!
-
Lisp pour renommer un fichier ouvert
GER-onimo a répondu à un(e) sujet de GER-onimo dans Routines LISP
oui c'est plutôt sécuritaire c'est vrai... mais dans certain cas ça pourrait être bien pratique. -
Lisp pour renommer un fichier ouvert
GER-onimo a répondu à un(e) sujet de GER-onimo dans Routines LISP
merci gile :) ... mais ça n'écrase pas le fichier d'origine qui reste présent dans le dossier -
Bonjour Tout est dans le titre; je suis à la recherche d'un lisp qui permet de renommer un fichier DWG ouvert sur autocad. Il me semble avoir vu ça sur un site mais impossible de remettre la main dessus !! merci :)
-
Justement j'ai pris le temps de changer les valeurs du lisp du millimètre vers le mètre, mais le plus étrange c'est que lorsque je charge le lisp et que je tape la commande autocad ne reconnaît pas la variable. Il n'y a que des valeurs qui ont été modifiées.
-
Je ne trouve plus le lien mais voila le code : La variable est TUYAU ;; Tuyau 2d ;; et avec ou sans calorifuge ;; fait à partir de tuy.lsp ( tuyau 3 D ) ;;usegomme 11-07-2010 17-07-10 version 1.3 (defun choixnormetdd (/ sv_dm dm) (setq sv_dm (getvar "DYNMODE")) (cond ((< sv_dm 0) (setq dm (* sv_dm -1)) (setvar "DYNMODE" dm)) (t (setq sv_dm nil dm nil)) ) (initget 1 "ISO3D ISO5D INOX-VIS 3000Lbs-VIS PE-PP-EMB PVC-PRESSION PVC-ECOUL CINTRE-SGN") ;;;; bit refus reponse nulle (setq norme (getkword "\nChoisir une Norme [iSO3D/ISO5D/INOX-VIS/3000Lbs-VIS/PE-PP-EMB/PVC-PRESSION/PVC-ECOUL/CINTRE-SGN] : ")) (if sv_dm (setvar "DYNMODE" sv_dm)) ) (Defun getDNtuytdd ( a b d e f g / c) ;(setq c (strcat a d g "<" b ">" e f " ")) ; (setq c (strcat a d g "<" b ">" " ")) (setq c (strcat a g "<" b ">" " ")) (setq c (getreal c)) ) (defun diam-tdd (/ dn diam d B) (setq dn "Norme" epcd 0 emboit 0 EPemboit nil L90 nil L45 nil ecart 0) (if (not norme) (setq norme "ISO3D")) ;; par defaut (if (not epcalo)(setq epcalo 0)) ;; par defaut (while (or(= dn "Norme")(= dn "Calo")) (if (> epcalo 0) (setq msgcalo " CALO ep" msgecalo (rtos epcalo 2 0)) (setq msgcalo " Sans" msgecalo " calo") ) (cond ((= norme "ISO3D") (setq msgdn " DN:") (if (and (/= iso3d:dn "Autre")(/= iso3d:dn nil)) (setq dn (rtos iso3d:dn 2 0)) (setq dn "Autre") ) (setq choixdn (strcat "\n " norme msgcalo msgecalo msgdn "[Norme/Calo/8/10/15/21/20/25/32/40/50/65/80/100/125/150/200/250/300/350/400/450/500/600/Autre]") ) ) ((= norme "CINTRE-SGN") (setq msgdn " DN:") (if (and (/= CINTRE-SGN:dn "Autre")(/= CINTRE-SGN:dn nil)) (setq dn (rtos CINTRE-SGN:dn 2 0)) (setq dn "Autre") ) (setq choixdn (strcat "\n " norme msgcalo msgecalo msgdn "[Norme/Calo/8/10/15/20/25/32/40/Autre]") ) ) ((= norme "ISO5D") (setq msgdn " DN:") (if (and (/= iso5d:dn "Autre")(/= iso5d:dn nil)) (setq dn (rtos iso5d:dn 2 0))(setq dn "Autre") ) (setq choixdn (strcat "\n " norme msgcalo msgecalo msgdn "[Norme/Calo/20/25/32/40/50/65/80/100/125/150/200/250/300/350/Autre]") ) ) ((= norme "INOX-VIS") (setq msgdn " DN:") (if (and (/= inox-vis:dn "Autre")(/= inox-vis:dn nil)) (setq dn (rtos inox-vis:dn 2 0)) (setq dn (rtos 25 2 0) inox-vis:dn 25) ) (setq choixdn (strcat "\n " norme msgcalo msgecalo msgdn "[Norme/Calo/6/8/10/15/20/25/32/40/50/65/80]") ) ) ((= norme "3000Lbs-VIS") (setq msgdn " DN:") (if (and (/= 3000Lbs-VIS:dn "Autre")(/= 3000Lbs-VIS:dn nil)) (setq dn (rtos 3000Lbs-VIS:dn 2 0)) (setq dn (rtos 50 2 0) 3000Lbs-VIS:dn 50) ) (setq choixdn (strcat "\n " norme msgcalo msgecalo msgdn "[Norme/Calo/6/8/10/15/20/25/32/40/50/65/80]") ) ) ((= norme "PE-PP-EMB") (setq msgdn " DN:") (if (and (/= PE-PP-EMB:dn "Autre")(/= PE-PP-EMB:dn nil)) (setq dn (rtos PE-PP-EMB:dn 2 0)) (setq dn (rtos 50 2 0) PE-PP-EMB:dn 50) ) (setq choixdn (strcat "\n " norme msgcalo msgecalo msgdn "[Norme/Calo/10/15/20/25/32/40/50/65/80/100]") ) ) ((= norme "PVC-PRESSION") (setq msgdn " Diam:") (if (and (/= PVC-P:dn "Autre")(/= PVC-P:dn nil)) (setq dn (rtos PVC-P:dn 2 0)) (setq dn (rtos 50 2 0) PVC-P:dn 50) ) (setq choixdn (strcat "\n " norme msgcalo msgecalo msgdn "[Norme/Calo/6/8/10/12/16/20/25/32/40/50/63/75/90/110/125/140/160/200/225/250]") ) ) ((= norme "PVC-ECOUL") (setq msgdn " Diam:") (if (and (/= PVC-ECOUL:dn "Autre")(/= PVC-ECOUL:dn nil)) (setq dn (rtos PVC-ECOUL:dn 2 0)) (setq dn (rtos 40 2 0) PVC-ECOUL:dn 40) ) (setq choixdn (strcat "\n " norme msgcalo msgecalo msgdn "[Norme/Calo/32/40/50]") ) ) ) ;; fin cond (initget "Autre Norme Calo") (setq dn (getDNtuytdd choixdn dn norme msgcalo msgecalo msgdn )) (if (= dn "Norme") (choixnormetdd)) (if (= dn "Calo") (if (setq epc (getdist (strcat "\nEpaisseur calo ou 2 pts <" (rtos epcalo 2 0) ">: "))) (setq epcalo epc epc nil) ) ) ) ;; while dn= norme (cond ((= norme "ISO3D") (cond ((and (/= dn "A") (/= dn nil))(setq iso3d:dn dn)) ((= dn nil) (if iso3d:dn (setq dn iso3d:dn))) ) (cond ((= dn 8) (setq diam 13.5 rayo 20 )) ((= dn 10) (setq diam 17.2 rayo 25 )) ((= dn 15) (setq diam 21.3 rayo 28 )) ;27 ((= dn 21) (setq diam 21.3 rayo 38 )) ; dn15 inox ((= dn 20) (setq diam 26.9 rayo 28.5)) ((= dn 25) (setq diam 33.7 rayo 38)) ((= dn 32) (setq diam 42.4 rayo 47.5)) ((= dn 40) (setq diam 48.3 rayo 57)) ((= dn 50) (setq diam 60.3 rayo 76)) ((= dn 65) (setq diam 76.1 rayo 95)) ((= dn 80) (setq diam 88.9 rayo 114.5)) ((= dn 100)(setq diam 114.3 rayo 152.5)) ((= dn 125) (setq diam 139.7 rayo 190.5)) ((= dn 150) (setq diam 168.3 rayo 228.5)) ((= dn 200) (setq diam 219.1 rayo 305)) ((= dn 250) (setq diam 273 rayo 381)) ((= dn 300) (setq diam 323.9 rayo 457)) ((= dn 350) (setq diam 355.6 rayo 533.5)) ((= dn 400) (setq diam 406.4 rayo 609.5)) ((= dn 450) (setq diam 458 rayo 686)) ((= dn 500) (setq diam 508 rayo 762)) ((= dn 600) (setq diam 610 rayo 914)) (t (autrediametretdd) ) ) ) ((= norme "CINTRE-SGN") ;;;; cintrage tube d'après un document SGN (cond ((and (/= dn "A") (/= dn nil))(setq CINTRE-SGN:dn dn)) ((= dn nil) (if CINTRE-SGN:dn (setq dn CINTRE-SGN:dn))) ) (cond ((= dn 8) (setq diam 13.5 rayo 70 )) ((= dn 10) (setq diam 17.2 rayo 90 )) ((= dn 15) (setq diam 21.3 rayo 110 )) ((= dn 20) (setq diam 26.9 rayo 135)) ((= dn 25) (setq diam 33.7 rayo 170)) ((= dn 32) (setq diam 42.4 rayo 215)) ((= dn 40) (setq diam 48.3 rayo 245)) (t (autrediametretdd) ) ) (setq ecart 110) ;;; longueur droite entre 2 courbes ) ((= norme "ISO5D") (cond ((and (/= dn "A") (/= dn nil))(setq iso5d:dn dn)) ((= dn nil) (if iso5d:dn (setq dn iso5d:dn))) ) (cond ((= dn 20) (setq diam 26.9 rayo 57.5)) ((= dn 25) (setq diam 33.7 rayo 72.5)) ((= dn 32) (setq diam 42.4 rayo 92.5)) ((= dn 40) (setq diam 48.3 rayo 109.5)) ((= dn 50) (setq diam 60.3 rayo 137.5)) ((= dn 65) (setq diam 76.1 rayo 175)) ((= dn 80) (setq diam 88.9 rayo 207.5)) ((= dn 100) (setq diam 114.3 rayo 270)) ((= dn 125) (setq diam 139.7 rayo 330)) ((= dn 150) (setq diam 168.3 rayo 390)) ((= dn 200) (setq diam 219.1 rayo 515)) ((= dn 250) (setq diam 273 rayo 650)) ((= dn 300) (setq diam 323.9 rayo 770)) ((= dn 350) (setq diam 355.6 rayo 850)) (t (autrediametretdd) ) ) ) ((= norme "INOX-VIS") (cond ((and (/= dn "A") (/= dn nil))(setq inox-vis:dn dn)) ((= dn nil) (if inox-vis:dn (setq dn inox-vis:dn))) ) (cond ;; d diametre ext coude ((= dn 6) (setq diam 10.2 L90 19 d 14.5)) ((= dn 8) (setq diam 13.5 L90 21 d 17.5)) ((= dn 10) (setq diam 17.2 L90 25 d 21.5)) ((= dn 15) (setq diam 21.3 L90 28 d 27)) ((= dn 20) (setq diam 26.9 L90 33 d 33.5)) ((= dn 25) (setq diam 33.7 L90 38 d 40.5)) ((= dn 32) (setq diam 42.4 L90 45 d 50)) ((= dn 40) (setq diam 48.3 L90 50 d 57)) ((= dn 50) (setq diam 60.3 L90 58 d 70)) ((= dn 65) (setq diam 76.1 L90 75 d 86)) ((= dn 80) (setq diam 88.9 L90 85 d 100)) (t (autrediametretdd) ) ) (setq epcd (* (- d diam) 0.5)) ; epaisseur coude (setq rayo (+ (* diam 0.5) epcd 1) emboit (- l90 rayo) epemboit epcd) ) ((= norme "3000Lbs-VIS") (cond ((and (/= dn "A") (/= dn nil))(setq 3000Lbs-VIS:dn dn)) ((= dn nil) (if 3000Lbs-VIS:dn (setq dn 3000Lbs-VIS:dn))) ) (cond ;;;; b = diametre "manchon" ((= dn 8) (setq diam 13.5 L90 24.5 l45 22 b 26.5)) ((= dn 10) (setq diam 17.2 L90 28.5 l45 22 b 34)) ((= dn 15) (setq diam 21.3 L90 33.5 l45 25 b 38.5)) ((= dn 20) (setq diam 26.9 L90 38 l45 28.5 b 46.5)) ((= dn 25) (setq diam 33.7 L90 44.5 l45 33.5 b 56.5)) ((= dn 32) (setq diam 42.4 L90 51 l45 38 b 62.5)) ((= dn 40) (setq diam 48.3 L90 60.5 l45 41.5 b 76)) ((= dn 50) (setq diam 60.3 L90 63.5 l45 50.5 b 92)) ((= dn 65) (setq diam 76.1 L90 82.5 l45 63.5 b 110)) ((= dn 80) (setq diam 88.9 L90 95.5 l45 63.5 b 122)) ((= dn 100)(setq diam 114.3 L90 114.5 l45 80 b 152)) (t (autrediametretdd) ) ) (setq epcd (* (- b diam) 0.25)) ;; ep coude = moitie epaisseur manchon ?.. (setq rayo (+ (* diam 0.5) epcd 1) emboit (- l90 rayo) epemboit (* 2 epcd)) ) ((= norme "PE-PP-EMB") (cond ((and (/= dn "A") (/= dn nil))(setq PE-PP-EMB:dn dn)) ((= dn nil) (if PE-PP-EMB:dn (setq dn PE-PP-EMB:dn))) ) (cond ;;;; d= diametre ext coudes ((= dn 10) (setq diam 16 L90 25 L45 20 d 26)) ((= dn 15) (setq diam 20 L90 28 L45 21 d 30.5)) ((= dn 20) (setq diam 25 L90 32 L45 24 d 36)) ((= dn 25) (setq diam 32 L90 38 L45 28 d 43.5)) ((= dn 32) (setq diam 40 L90 44 L45 33 d 53.5)) ((= dn 40) (setq diam 50 L90 51 L45 36 d 66)) ((= dn 50) (setq diam 63 L90 62 L45 43 d 82)) ((= dn 65) (setq diam 75 L90 75.5 L45 51 d 92.5)) ((= dn 80) (setq diam 90 L90 88 L45 58 d 110)) ((= dn 100) (setq diam 110 L90 106 L45 68 d 134)) (t (autrediametretdd) ) ) (setq epcd (* (- d diam) 0.5)) ; ep coude (setq rayo (+ (* diam 0.5) epcd 1) emboit (- l90 rayo) epemboit epcd ecart 5) ) ((= norme "PVC-PRESSION") (cond ((and (/= dn "A") (/= dn nil))(setq PVC-P:dn dn)) ((= dn nil) (if PVC-P:dn (setq dn PVC-P:dn))) ) (cond ;;;; D diam ext coude ((= dn 6) (setq diam dn L90 16 D 11)) ((= dn 8) (setq diam dn L90 17 D 13)) ((= dn 10) (setq diam dn L90 18 D 14)) ((= dn 12) (setq diam dn L90 19 D 17)) ((= dn 16) (setq diam dn L90 23 L45 18.5 D 21)) ((= dn 20) (setq diam dn L90 27 L45 21 D 25)) ((= dn 25) (setq diam dn L90 33 L45 25 D 30.5)) ((= dn 32) (setq diam dn L90 39 L45 30 D 38.2)) ((= dn 40) (setq diam dn L90 49 L45 36 D 47.2)) ((= dn 50) (setq diam dn L90 57 L45 42.5 D 58.5)) ((= dn 63) (setq diam dn L90 71 L45 52 D 73.4)) ((= dn 75) (setq diam dn L90 83 L45 60.5 D 87.2)) ((= dn 90) (setq diam dn L90 97 L45 70.5 D 105)) ((= dn 110) (setq diam dn L90 116 L45 86 D 127)) ((= dn 125) (setq diam dn L90 172 L45 97 D 146.2)) ((= dn 140) (setq diam dn L90 146 L45 108 D 162)) ((= dn 160) (setq diam dn L90 166 L45 122 D 185)) ((= dn 200) (setq diam dn L90 207 L45 149 D 225.2)) ((= dn 225) (setq diam dn L90 233 L45 168 D 250)) ((= dn 250) (setq diam dn L90 263 L45 191.5 D 282)) (t (autrediametretdd) ) ) (setq epcd (* (- d diam) 0.5)) ;; ep coude (setq rayo (+ (* diam 0.5) epcd 1) emboit (- L90 rayo) epemboit epcd ecart 5) ) ((= norme "PVC-ECOUL") (cond ((and (/= dn "A") (/= dn nil))(setq PVC-ECOUL:dn dn)) ((= dn nil) (if PVC-ECOUL:dn (setq dn PVC-ECOUL:dn))) ) (cond ;;;; L87 longueur pour coude 87.5° ((= dn 32) (setq diam dn L87 48 L45 34 emboit 26)) ;; +3 ((= dn 40) (setq diam dn L87 58 L45 40 emboit 30)) ((= dn 50) (setq diam dn L87 71 L45 49 emboit 35)) (t (autrediametretdd) ) ) (setq L90 (/ (- (* L87 45)(* L45 2.5)) 42.5)) ;; 90-87.5=2.5 et 45-2.5=42.5 (setq rayo (- L90 emboit) epemboit 2 epcd 0 ecart 5) ;;; ecart = ecartement mini entre 2 embouts de coude ) ) ; fin cond dn suivant norme (setq ddia (/ diam 2)) (if (not (> rayo (+ ddia epcd))) (setq rayo (* (+ ddia epcd) 1.01))) ) (defun autrediametretdd () (setq epcd 0) (if (not tuy:dia)(if ddia (setq tuy:dia (* ddia 2))(setq tuy:dia 8))) (setq diam (getdist (strcat "\nDiametre Exterieur Tuyauterie ou 2 pts <" (rtos tuy:dia 2 4) ">: "))) (if diam (setq tuy:dia diam) (setq diam tuy:dia)) (if (not tuy:ray)(setq tuy:ray diam)) (setq rayo (getdist (strcat "\nRayon coude ou 2 pts <" (rtos tuy:ray 2 4) ">: "))) (if rayo (setq tuy:ray rayo) (setq rayo tuy:ray)) ) (defun tubagetdd (ent typ / lent p10 a50 a51 p11 pw) (command "_ucs" "") ;; dessine les contours du tube (cond ((= typ 1) ;; coude (setq p10 (trans (cdr (assoc 10 (entget ent))) 0 1)) (setq a50 (cdr (assoc 50 (entget ent)))) (setq a51 (cdr (assoc 51 (entget ent)))) (command "_offset" ddia ent "_non" p10 "") (command "_offset" ddia ent "_non" (polar p10 a50 (* 2 rayo)) "") (cond ((and (> emboit 0)(> epemboit 0)) (setq pw (getvar "plinewid")) (setvar "plinewid" 0) (command "_pline" "_non" (polar p10 a50 (+ rayo ddia epemboit)) "_non" (polar p10 a50 (- rayo ddia epemboit)) "_non" (polar (polar p10 a50 (- rayo ddia epemboit)) (- a50 (* 0.5 pi)) emboit) "_non" (polar (polar (polar p10 a50 (- rayo ddia epemboit)) (- a50 (* 0.5 pi)) emboit) a50 (+ (* 2 ddia) (* 2 epemboit)) ) "_c" ) (command "_pline" "_non" (polar p10 a51 (+ rayo ddia epemboit)) "_non" (polar p10 a51 (- rayo ddia epemboit)) "_non" (polar (polar p10 a51 (- rayo ddia epemboit)) (- a51 (* 1.5 pi)) emboit) "_non" (polar (polar (polar p10 a51 (- rayo ddia epemboit)) (- a51 (* 1.5 pi)) emboit) a51 (+ (* 2 ddia) (* 2 epemboit)) ) "_c" ) (setvar "plinewid" pw) ) (t (command "_line" "_non" (polar p10 a50 (+ rayo ddia)) "_non" (polar p10 a50 (- rayo ddia)) "" ) (command "_line" "_non" (polar p10 a51 (+ rayo ddia)) "_non" (polar p10 a51 (- rayo ddia)) "" ) ) ) (cond ((and (> epcalo 0) (> rayo (+ ddia epcalo))) (command "_offset" (+ ddia epcalo) ent "_non" p10 "") (setq lent (entget (entlast))) (setq lent (subst (cons 8 calqcalo) (assoc 8 lent) lent)) (entmod lent) (command "_offset" (+ ddia epcalo) ent "_non" (polar p10 a50 (* 2 rayo)) "") (setq lent (entget (entlast))) (setq lent (subst (cons 8 calqcalo) (assoc 8 lent) lent)) (entmod lent) ) ) ) (t ;; tube (setq p10 (trans (cdr (assoc 10 (entget ent))) 0 1)) (setq p11 (trans (cdr (assoc 11 (entget ent))) 0 1)) (command "_offset" ddia ent "_non" (polar p10 (+ (* 0.5 pi)(angle p10 p11)) ddia ) "") (command "_offset" ddia ent "_non" (polar p10 (+ (* 0.5 pi)(angle p11 p10)) ddia ) "") (cond ((> epcalo 0) (command "_offset" (+ ddia epcalo) ent "_non" (polar p10 (+ (* 0.5 pi)(angle p10 p11)) ddia) "") (setq lent (entget (entlast))) (setq lent (subst (cons 8 calqcalo) (assoc 8 lent) lent)) (entmod lent) (command "_offset" (+ ddia epcalo) ent "_non" (polar p10 (+ (* 0.5 pi)(angle p11 p10)) ddia) "") (setq lent (entget (entlast))) (setq lent (subst (cons 8 calqcalo) (assoc 8 lent) lent)) (entmod lent) ) ) ) ) ;change proprietes de l'axe (setq lent (entget ent)) ;; si le code 62 pour la couleur est présent ... ; (if (assoc 62 lent) ;; ... le remplacer par un nouveau ; (setq lent (subst (cons 62 6) ;;Nouvelle couleur magenta ; (assoc 62 lent) lent) ; ) ;; sinon, en ajouter un ; (setq lent (append lent (list (cons 62 6)))) ;; magenta ; ) ;; idem pour type de ligne (if (assoc 6 lent) (setq lent (subst (cons 6 "AXES2") (assoc 62 lent) lent) ) (setq lent (append lent (list (cons 6 "AXES2")))) ) (entmod lent) (command "_ucs" "_p") ) (defun descoudetdd ( L1 L2 pt long) (command "_fillet" L1 L2) (setq coude (entlast)) (if (or del1 (if dminp (= (- long dminp) dmin) (= long dmin))) (entdel L1) (tubagetdd L1 lg) ) (setq del1 nil) (tubagetdd coude cd) ) (defun deterdmintdd ( / a a90 p) ;; determine la distance mini pour placer un coude (cond ;; restauration rayon original ((and l90 l45 epemboit) (setq rayo (- l90 emboit)) (setvar "FILLETRAD" rayo)) ) (if dmin (setq dminp dmin)) ;;; dminp = dmin du coude precedent (if (= b (+ d01 d10)) (setq a180 t) (setq a180 nil)) ;; si angle 180 pas de coude mais prolongement (if (or (= d01 (+ b d10)) (= d10 (+ b d01))) (setq a0 t) (setq a0 nil) ;; si angle 0 pas possible alors arret ) (if (= (* b B) (+ (* d01 d01) (* d10 d10))) ;; si angle 90 dmin = rayon (setq a90 t dmin rayo) (setq a90 nil) ) (if (and (not a0) (not a90)(not a180)) ;;; si autre alors calcul (progn (setq p (/ (+ d01 d10 B) 2)) ;;; p=1/2 perimetre (setq a (abs (atan (sqrt (/ (* (- p d01)(- p d10)) (* p (- p B))))))) ;; 1/2 angle (setq at (* 2 (* a (/ 180 pi)))) ;; angle tuyauterie (cond ((and l90 l45 epemboit (> at 90)) (setq dmin (- (- l90 emboit) (* (/ (- (- l90 emboit)(- l45 emboit)) 45)(- at 90)))) (setq rayo (/ (* (sin a) dmin) (cos a))) (if (not (> rayo (+ ddia epemboit))) (setq rayo (* (+ ddia epemboit) 1.01) dmin (* (cos a) (/ rayo (sin a))) ) ) (setvar "FILLETRAD" rayo) ) (t (setq dmin (* (cos a) (/ rayo (sin a))))) ) ) ) (if a90 (setq at 90.0)) (if a180 (setq at 180.0)) ) (defun onfekoitdd (L1 L2 pt1 pt2 pt3 d1 d2) (cond (a180 (tubagetdd L1 lg)) (a0 (tubagetdd L1 lg) (entdel L2) (setq p0 nil p1 nil)) ((and (not a0) (not a180)) (if (> rayo 0) (cond ((and (if dminp (>= (- d1 dminp) (+ dmin (* 2 emboit) ecart)) (>= d1 dmin)) (>= d2 dmin) ) (descoudetdd L1 L2 pt2 d1) ) ((or (if dminp (< (- d1 dminp) (+ dmin (* 2 emboit) ecart)) (< d1 dmin)) (< d2 dmin) ) (correctiontdd L1 L2 pt1 pt2 pt3 d1 d2) ) ) (tubagetdd L1 lg) ;;; si rayon 0 pas de raccordement ) ) ) ) (defun correctiontdd (L1 L2 pt1 pt2 pt3 d1 d2) (setq lg (if dminp (+ dmin dminp (* 2 emboit) ecart) dmin)) (if (< d1 lg) (progn (setq pt1 (trans (cdr (assoc 10 (entget L1))) 0 1)) (if dminp (setq lgmin (+ dmin (* 2 emboit) ecart))(setq lgmin dmin)) (redefsommettdd pt1 pt2 lgmin) (entdel L1) (command "_line" "_none" pt1 "_none" sbn "") (setq L1 (entlast)) (command "_move" L2 "" "_none" pt2 "_none" sbn) (setq pt2 sbn) (if (and (= emboit 0)(= ecart 0))(setq del1 t)) ) ;;; progn ) ;;; if (cond ((> d2 dmin) (setq pt3 (trans (cdr (assoc 11 (entget L2))) 0 1)) (if (= dp t) (setq p1 pt3 p0 pt2) (setq p0 pt3 p1 pt2) ) (descoudetdd L1 L2 pt2 lg) ;; pas modif ok ) ((= d2 dmin) (descoudetdd L1 L2 pt2 lg) (entdel L2) (setq p0 nil p1 nil) ;;; arret sur coude ) ((< d2 dmin) ;; modification L2 (if (< d1 lg) (progn (setq pt2 sbn) (setq pt3 (trans (cdr (assoc 11 (entget L2))) 0 1)) (setq d1 lg) ) ) (redefsommettdd pt2 pt3 dmin) (command "_move" L2 "" "_none" pt3 "_none" sbn) (descoudetdd L1 L2 pt2 d1) (entdel L2) (setq p0 nil p1 nil) ;;; arret sur coude ) ) ) (defun redefsommettdd (sa sb dist / h a ab za zb z y x b bn hn ap psbn) (setq h (- (caddr sb)(caddr sa))) ;;; hauteur triangle (if (= h 0.0) ;; si parallele plan xy (progn (setq a (angle sa sb)) (setq sbn (polar sa a dist)) ) ;; si vertical suivant axe Z (if (and (= (rtos (car sa) 2 1) (rtos (car sb) 2 1)) ;; probleme de precision avec deplacement ligne (= (rtos (cadr sa) 2 1) (rtos (cadr sb) 2 1)) ) (progn (setq za (caddr sa) zb (caddr sb)) (if (> za zb) (setq z (- za dist)) (setq z (+ za dist)) ) (setq x (car sa) y (cadr sa)) (setq sbn (list x y z)) ;;; nouv sommet b ) ;; orientation quelconque (progn (setq ab (distance sa sb)) (setq b (sqrt (- (* ab ab) (* h h)))) ;;; base triangle (setq hn (/ (* h dist) ab)) ;;; nouvelle hauteur (setq bn (/ (* b dist) ab)) ;;; nouvelle base (setq ap (angle sa sb)) ;;; angle projeté de ab (setq psbn (polar sa ap bn)) ;;; projection nouv sommet b (setq z (+ (caddr sa) hn)) ;;; z nouv pb (setq x (car psbn)) (setq y (cadr psbn)) (setq sbn (list x y z)) ;;; nouv sommet b ) ) ) ) (defun creercalqueAXEtdd (/ calqax) ;;; pas utilisé *** ;creer calque de l'axe (setq calqax (strcat (getvar "clayer") "-AXE")) (if (not (tblsearch "layer" calqax)) ; (command "_-layer" "_n" calqax "" "" ) (command "_-layer" "_n" calqax "_co" "6" calqax "_lt" "axes2" calqax "") ) ) (defun creercalqueCALOtdd ();creer calque pour calorifuge (setq calqcalo (strcat (getvar "clayer") "-CALO")) (if (not (tblsearch "layer" calqcalo)) ; s'il n'existe pas le calque est créé avec la couleur 9 (command "_-layer" "_n" calqcalo "_co" "9" calqcalo "") ) ) (defun c:TUYAU (/ L01 L10 p0 p1 coude mtrim ent eptub at) (setvar "cmdecho" 0) (diam-tdd) (setq p1 nil dmin nil dminp nil L10 nil del1 nil cd 1 lg 0) ;(creercalqueaxetdd) ;; pas utilisé (if (not (tblsearch "ltype" "axes2")) (command "_-linetype" "_l" "AXES2" "" "")) (if (> epcalo 0)(creercalquecalotdd)) (setvar "FILLETRAD" rayo) (setq mtrim (getvar "trimmode"))(setvar "trimmode" 1) (if (not tuy:ep) (setq tuy:ep 0)) (setq p0 (getpoint (strcat "\nPOINT DE DEPART :"))) (while p0 (if p1 (setq pd p1)) ;;; pd point de depart (cond (at (princ "Angle tuyauterie ")(princ at)(princ "°") (princ " et Coude ")(princ (- 180 at))(princ "°") ) ) (princ " Rayon ")(princ rayo) (setq p1 (getpoint p0 "\nPoint suivant <Arret> : ")) (if p1 (progn (command "_line" "_none" p0 "_none" p1 "") (setq L01 (entlast) d01 (distance p0 p1) dp t) ;;; dp = dernier point p1 (if l10 ;;; si plusieurs boucles ;;; (progn (setq b (distance p1 pd)) ;;; b base triangle (deterdmintdd) (onfekoitdd L10 L01 pd p0 p1 d10 d01) ) ) (if p0 (setq pd p0)) (cond (at (princ "Angle tuyauterie ")(princ at)(princ "°") (princ " et Coude ")(princ (- 180 at))(princ "°") )) (princ " Rayon ")(princ rayo) (if p1 (setq p0 (getpoint p1 "\nPoint suivant <Arret> : "))) (if p0 (progn (command "_line" "_none" p1 "_none" p0 "") (setq l10 (entlast) d10 (distance p1 p0) dp nil) (setq b (distance p0 pd)) (deterdmintdd) (onfekoitdd L01 L10 pd p1 p0 d01 d10) ) ) ) ;;; si p1 nil (progn (if (and l10 p0 ) (tubagetdd l10 lg)) ;; si plusieurs boucles ;;;; (setq p0 nil ) ) ) ;;;; fin if p1 ) ;;; fin while (cond ((and l01 p1)(tubagetdd l01 lg))) ;;;; termine dernier tronçon (setvar "trimmode" mtrim)(setvar "cmdecho" 1) (cond (at (princ "\nAngle tuyauterie ")(princ at)(princ "°") (princ " et Coude ")(princ (- 180 at))(princ "°") )) (cond (rayo (princ " Rayon ")(princ rayo))) (gc) (prin1) )
-
Bonjour J'ai récemment chargé le lisp TUYAU qui permet de dessiner rapidement des tubes au diamètre voulu et du même temps choisir les normes de tuyauterie ( acier, PVC, PVC pression etc). Ce lisp est assez pratique et vient en complément de ce que j'ai déjà... le problème est que l'échelle de base de la plupart de mes plans est au mètre et les valeurs du lisp sont au millimètre. Jouer sur le tableau des unités ne donnent évidemment rien. Changer les valeurs dans le code du lisp non plus; j'ai fais une copie qui ne fonctionne pas. Existe-t'il un moyen... une variable peut être qui puisse redéfinir en direct l'échelle de ce lisp au moment de la création des tubes ( ...qui n'apparaissent pas sous la forme d'un bloc pour info) Merci
-
Merci (gile) ça fonctionne. Je consulte l'aide assez souvent mais là j'y ai pas pensé merci encore
-
Bonjour J'aimerais savoir s'il est possible de choisir mon type de ligne avec la commande Trait d'Axe. En effet Trait d'Axe me renvoi un mixte CENTER2 mais pour des raisons pratiques j'aimerais y associer un autre type de ligne perso à la création de l'axe... est ce possible? Je pose peut-être une colle !? non ?
-
Exact La Lozère Merci ça marche !! :D Bonjour Rebcao le problème était que l'estompage était beaucoup trop prononcé pour les objets de fond faisant pas partie de l'édition du bloc du coup je ne voyais pas les limites lorsque j'ajustais un bloc en édition direct.
-
Bonjour J'édite souvent mes blocs dans le dessin courant de la même manière que les Xref, c'est la même variable. Après recherche sur les forums, j'ai vu que l'on pouvait modifier l'estompe en edition Xref dans les options/affichage/Contrôle de l'estompe. En toute logique je me dis que c'est également valable en édition bloc. J'ai beau modifier la valeur dans les options, l'arrière plan verrouillé reste toujours aussi sombre. Une idée ? Merci
-
Bonjour à tous Dans le DWGtoPDF.pc3 j'ai ajouté des formats personnalisés (il était temps...marre d'utiliser les prédéfinies). Par conséquent ça me génère un fichier PMP. Ce PMP se charge lorsque j'affiche le DWGtoPDF par la boite de dialogue Tracer > Imprimante/Traceur. Par contre lorsque je passe par le menu Autocad > Exporter et que j'affiche dans le champs en haut DWGtoPDF le fichier PMP ne se charge pas. Est ce normal ??
-
Les propriétés rapides ne s'affichent plus
GER-onimo a répondu à un(e) sujet de GER-onimo dans AutoCAD LT 2016
mouais pas top... ! :( -
Les propriétés rapides ne s'affichent plus
GER-onimo a répondu à un(e) sujet de GER-onimo dans AutoCAD LT 2016
Alors... J'ai chargé le CUix que tu m'as envoyé. A partir de cette config ça marche ! Donc je me dis que sur le même fichier dwg déja ouvert je vais revenir à mon espace et ça va peut-être fonctionner... et bien non! donc je reviens sur ton espace de travail 2006 et là...ça marche plus non plus. Je pense que tu as raison; ça peut venir du fichier CUix