Aleck_Ultimate Posté(e) le 24 avril 2018 Posté(e) le 24 avril 2018 Bonjour à tous. J'ais en projet d'insérer un bloc réglette étalon en EP qui soit à l’échelle de la fenêtre. J'ais réussit la mise à l'échelle, mais je ne trouve pas comment définir les coordonnée de mon point de base. Dans l'idéal je voudrait qu'il se crée par rapport au coin bas-gauche de la fenêtre, mais je ne trouve pas les coordonnées des points du contour de la fenêtre, et en plus j'ais peur que ce soit une usine à gaz entre fenêtre deux point et fenêtre polylignes. Voila mon code en l'état : ;| Insertion de réglette d'échelle De Aleck Ultimate Vertion 0.1 |; (defun c: ALK_insertion_reglette (/ fenetre facteur) ;;; Extraction DXF de la fenêtre (setq fenetre (entget (car (entsel)))) ;;; Calcule du facteur d'échelle (setq facteur (/ (cdr (assoc 41 fenetre)) ;_ hauteur espace papier (cdr (assoc 45 fenetre)) ;_ hauteur espace objet ) ;_ fin de / ) ;_ fin de setq ;;; Creation du bloc (entmake '((0 BLOCK) ;_ type d'enité (8 <<nom du calque>>) ;_ calque (2 <<chemin d’accès du bloc>> ) ;_ nom du bloc (10 (cdr (assoc fenetre)) ;_ x point de base (20 (cdr (assoc fenetre)) ;_ y point de base (30 0.0) ;_ z point de base ) ;_ fin de quote ) ;_ fin de entmake ) ;_ fin de defunMerci. EDIT : Oui, je sais, il manque l’échelle du bloc à mon entmake. Je l'avais oublié et je le cherche encore de mon côté. Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux. Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage ! Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;]) Utilisateur d'AutoCAD 2021 sous Windows 10
Fraid Posté(e) le 24 avril 2018 Posté(e) le 24 avril 2018 Bonjour, je ne trouve pas les coordonnées des points du contour de la fenêtrePourquoi a tu besoin de ses coordonnées?Si tes présentations sont toujours identiques, cela doit être une constante. <<chemin d’accès du bloc>> et si tu faisais simplement (command "_-insert" ChemBloc Cooordonnée "" "" "") tu peux aussi mettre l'echelle. ou je n'ai pas compris https://github.com/Fraiddd
didier Posté(e) le 24 avril 2018 Posté(e) le 24 avril 2018 Coucou Je ne vais pas te répondre exactement dans le sens de la question mais je viens te rafraîchir la mémoire pour l'utilisation des champs très utiles pour ce genre de facteurs variablesEn effet si tu changes d'échelle ton lisp n'ayant pas de réacteur il est possible que tu délivres une fausse information avec ton "échelle"Faire un champ en espace papier qui va écrire l'échelle (en métrique)Tout se fait en EP :texte multipletaper Échelle : 1/ à ce moment clic droit (ou CTRL+H) et insérer un champchoisir Formule et dans la fenêtre de formule en bas à droite taper :1000/ à ce moment clic droit (ou CTRL+H) et insérer un champchoisir Objet et cliquer la FMULTdans les propriétés choisir Echelle personnalisée et valider Tu as un champ qui changera de valeur en fonction du zoom/xp (attention à faire REGEN tout de même)(le REGEN se fait automatiquement en cas d'impression)TRÈS pour les étourdis qui ne verrouillent pas les fenêtres ! Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Aleck_Ultimate Posté(e) le 25 avril 2018 Auteur Posté(e) le 25 avril 2018 Merci pour vos retours. Cette semaine j'ais du temps à consacrer au codage, mais j'ais aussi plein de petites bricoles à faire à droite à gauche, don il vas peut-être me falloir du temps pour expérimenter. Fraid : j'ais voulu éviter d'utiliser commande parce que je trouvait ça plus usine à gaz que entmake. Vu tout le bugs que j'ais avec entmake, je vais peut-être changer d'avis. EDIT : et justement, dans certains cas avec plusieurs fenêtres par plan, le point change. Didier : c'est une très bonne remarque, mais comme on est que deux à bosser sur AutoCAD dans mon entreprise, je croie que je vais pouvoir éviter les problèmes de collègues incompétent. Pour l'instant. L'idée d'insérer une réglette, c'est pour que les ouvriers puissent juste mettre leur pied à coulisse sur la réglette pour mesurer les distance sur le plans papier sans avoir à sortir la calculette, notamment parce que des plans autres qu'en 1/10 ; 1/100 ; 1/1000 sont très courants, et que c'est un bien plus grand risque d'erreur. Je voulait un truc qui permette une précision suffisante (la demande est rarement plus précise que +- 20cm) et qui puisse s'adapter à n'importe quelle échelle. C'est surement une hérésie pour des pros, mais on me demande de privilégier la taille du dessin plutôt que des échelles cohérentes. Et encore une échelle 1/75 c'est cohérent mais c'est une vraie usine à gaz sur chantier. Donc je fait des zooms étendu dans me fenêtre, et je voulait quelque chose qui puisse s'adapter à une échelle complètement aléatoire tout en restant utilisable sur chantier. Je n'ais jamais rien étudié sur les réacteur, mais j'ais cru comprendre que dans mon cas ça se résumerait en claire à "l'échelle de tel fenêtre à changée, adapter l’échelle du bloc associé". C'est très intéressant, mais je doute que ce soit de mon niveau pour l'instant. Bref. Je suis incapable de comprendre quelles donnée prendre dans le DXF de la fenétre pour que mon bloc s’insère dans le coin bas-gauche de la fenêtre. Je cherche toujours à savoir dans quel code DXF mettre cette échelle. J'ais essayé 1042 (pioché dans la liste générale), mais il m'est impossible de tester vue qu'actuellement mon LISP me retourne "erreur : groupe DXF incorrect : (0 BLOCK)" alors que c'est juste la première ligne de la page correspondant : BLOCK (DXF) Je cherche toujours de mon côté. Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux. Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage ! Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;]) Utilisateur d'AutoCAD 2021 sous Windows 10
Patrick_35 Posté(e) le 25 avril 2018 Posté(e) le 25 avril 2018 Salut Pour connaitre les coordonnées d'une fenêtre rectangulaire.(setq fenetre (vlax-ename->vla-object (car (entsel)))) (vla-getboundingbox fenetre 'basgauche 'hautdroit) (setq basgauche (vlax-safearray->list basgauche)) (setq hautdroit (vlax-safearray->list hautdroit)) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
didier Posté(e) le 25 avril 2018 Posté(e) le 25 avril 2018 Coucou Tu utilises ENTMAKE à tortSi l'entité "bloc" existe dans le dessin il va te falloir utiliser "_INSERT"Je te parlerai de ENTMAKE plus tardTu devrais relire ce conseil en milieu de page : auto-promo Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
bonuscad Posté(e) le 25 avril 2018 Posté(e) le 25 avril 2018 Un sujet qui pourrait peut être t'inspirer? Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Aleck_Ultimate Posté(e) le 25 avril 2018 Auteur Posté(e) le 25 avril 2018 patrick_35 : Merci. J'ais pas encore exploré le V-LISP, il va bien valoir que je m'y mette un jour Même si je ne comprend pas pourquoi on ne pourrait pas extraire manuellement ça du DXF. Je suppose que je ne comprend juste pas comment, et que le V-LISP est plus pratique à utiliser que l'autolisp dans ce cas. Didier : Quel conseil ? J'en ais trouvé deux ou trois qui pourraient correspondre à la situation, mais qui donneraient tous un sens très différant à ce que tu voudrait me dire Oui, j'ais commencé ce LISP avec (command "_-insert"). Y'a beaucoup de choses que je ne maîtrise pas, mais si je reste maladroit avec je sait relativement bien l'utiliser (du moins je le croie) sauf que : - Je la trouve très usine à gaz tant dans ce cas que de part mes précédentes expériences avec - On dit qu'il faut utiliser les versions anglophone des commandes mais dans l'utilisation que je commençait à en faire il aurait fallu utiliser des options de commande en français ce qui revient au même pour les même raisons - Comme j'avait déjà les mains dans les codes DXF, j'ais trouvé qu'il serait plus propre et mois risqué de directement créer l'objet - On n'a pas besoin que le bloc soit dans le dessin pour utiliser _-insert, le chemin d’accès complet est aussi accepté (et de toute façon le bloc ne sera pas forcément dans le dessin, si il faut l'insérer d’abord mon LISP ne sert plus à rien) Bref. Outre le fait que je n'arrive pas à utiliser ENTMAKE alors que j'ais lue et relue ton cours dessus, je ne comprend pas pourquoi je ne devrait pas l'utiliser présentement. J'ais quand-même progressé : (entmake '((0 . "BLOCK") ;_ type d'entité (8 . "ACC_EP_Reglettes") ;_ calque (2 . "C:\Users\Utilisateur\Documents\_Bloc\Cartouches\Cartouche_Reglette-a-inserer" ) ;_ nom du block (10 0.0 0.0 0.0) ;_ point de base ) ;_ fin de quote ) Me retourne juste "nil" et rien ne se crée, mais je n'ais plus d'erreurs. Youpi EDIT : Merci bonuscad, je décortiquerait ça quant j'aurais un peut plus de temps à y consacrer. Ce que j'espère très bientôt. Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux. Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage ! Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;]) Utilisateur d'AutoCAD 2021 sous Windows 10
Patrick_35 Posté(e) le 25 avril 2018 Posté(e) le 25 avril 2018 Si, tu peux avec les codes dxf, mais il faut calculer.Code dxf 10 : Centre de la fenêtreCode dxf 40 : Largeur de la fenêtreCode dxf 41 : Hauteur de la fenêtre L'avantage du BoundingBox est qu'il fonctionne pour tout type d'objet. Pour ton entmake, il manque(entmake '((0 . "ENDBLK")))pour lui indiquer que tu as fini ton bloc, car tu peux lui ajouter des lignes pas exemple. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Aleck_Ultimate Posté(e) le 25 avril 2018 Auteur Posté(e) le 25 avril 2018 Merci Patrick. J'avais pas réussit à comprendre comment marchait ce DXF. C'est de la manipulation de chaines, mais au moins c'est à ma portée. En effet, ENTMAKE demande un peut plus de subtilités que je ne le pensait au début, mais une foi qu'on tient les ficelles... Je vais juste laisser de côté les fenêtres à polylignes qui restent chez moi un cas exceptionnel, je tient trop à garder mes cheveux attachés à mon crâne Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux. Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage ! Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;]) Utilisateur d'AutoCAD 2021 sous Windows 10
didier Posté(e) le 25 avril 2018 Posté(e) le 25 avril 2018 Coucou LE conseil : Ne pas se lancer dans la programmation sans connaître sur le bout des ongles les options, commandes, manières de faire d'AutoCAD...On peut y arriver bien sûr, mais encore une fois : on n'apprend pas à courir sans savoir marcher Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Fraid Posté(e) le 25 avril 2018 Posté(e) le 25 avril 2018 Bonjour, je revient au debut du post.'insérer un bloc réglette étalon en EP qui soit à l’échelle de la fenêtre Cela n'a rien a voir avec la question qui porte sur Autolisp, mais cela me contrarie un petit peu.Ce genre de bloc s’insère en mon sens, dans l'espace objet, puisqu'il sert à contrôler si le plan est à la bonne échelle.Dans ton cas se n'est valable que si tu ne touche rien après.Imaginons en exemple,que tu ais oublié de verrouiller ta fenêtre et que tu ais légèrement zoomer, ton bloc seras bien mais pas le plan. Cordialement https://github.com/Fraiddd
Aleck_Ultimate Posté(e) le 26 avril 2018 Auteur Posté(e) le 26 avril 2018 Didier : Je fait de mon mieux, mais le LISP c'est un tapis roulant : on ne peut pas juste marcher dessus. Dés qu'on essais de marcher, on se rend compte que y'aura au mieux quatre fois plus de lignes de code à taper. Si on commence pas en courant, on commence jamais. J'ais la chance d'avoir pus passer deux jours plains sur 15 lignes pour apprendre à courir. Je te parle pas de tout mes LISP en embryon qui vont en demander une cinquantaine. Aux première estimations. Fraid : Remarque parfaitement recevable. En effet, c'est ce sur quoi Didier avait mis le doit en parlant de gens qui ne savent pas bosser en EP. Si j'avait 50, voir juste 10 gars sous mes ordres, je trouverait autre chose, mais on est que deux. Et il apprend très vite. Faudra être prudent, mais à cette échelle ça reste faisable, à mon avis. Si j'ais décidé de le mettre en EP c'est pour deux raisons principales. Premièrement, je DÉTESTE quant des truc comme les cartouches sont en EO. Pour moi, le seul truc non plan qu'on peut mettre en EO c'est la rose des vents. Tout le reste est en EP. Ensuit, quant on a plusieurs fenêtres, souvent des doublon entre A1 et A3, des cadrages différents mais qui s’interpénètrent, la seul solution de faire ça propre ce serait de mettre la réglette dans un claque particulier pour chaque fenêtre. Énorme perte de temps en perspective, surtout en sachant que mon collègue bosse sur mon vieux PC avec une 2015, donc sans les états de calques. Je prend bien en compte vos remarque, et elle me serviront à la mise en place de la procédure à appliquer et des habitudes à prendre, mais dans ce cas là je crois que c'est le plus approprié. Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux. Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage ! Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;]) Utilisateur d'AutoCAD 2021 sous Windows 10
didier Posté(e) le 26 avril 2018 Posté(e) le 26 avril 2018 Coucou Tu fais comme tu veuxSache que tout ce qui est "cador" sur le site à commencé par tracer des lignesToi tu attaques tout de suite par un truc avec des conditions pas toujours clairesLibre à toiJe me permets de conseiller, tu en fais ce que tu veuxTon image du tapis roulant est à double tranchant car si tu te vautres sur un tapis roulant tu seras entraîné et tu auras bien du mal à te relever Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
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