Zaher_chn Posté(e) le 29 juin 2023 Posté(e) le 29 juin 2023 Bonjour à toute et à tous, Existe t'il une commande ou un programme lisp capable de créer une polyligne tout en indiquant sa largeur directement sur le plan sans avoir à le faire manuellement ? Je souhaiterai en effet réaliser par exemple un mur d'une épaisseur de 20 cm représentée par une polyligne avec une largeur globale de 20. Dites le moi si jamais ce n'est pas assez claire. Merci encore pour votre temps 😉 Zaher Citer
dxxx01 Posté(e) le 29 juin 2023 Posté(e) le 29 juin 2023 tu pose un attribu a la ligne, celui-ci ira chercher la valeur largeur globale qu'il affichera ou CTRL+1 et tu a l'information directement sinon tu créer une ligne avec 20 ccm en largeur globale et tu la glisse le dessin dans la palette bloc quand tu cliquera sur le ligne elle ce créera avec cette epaisseur Citer
Zaher_chn Posté(e) le 30 juin 2023 Auteur Posté(e) le 30 juin 2023 Ce n'est peut-être pas bien clair. En fait, quand je récupère un plan archi, j'ai envie de remplacer les hachures des murs par une polyligne dont la largeur globale est égale à l'épaisseur du mur. On ne peut pas faire cela avec une ligne. Citer
didier Posté(e) le 30 juin 2023 Posté(e) le 30 juin 2023 Bonjour @Zaher_chn Si on le voulait vraiment, il est facilement possible de réaliser cette commande, mais je n'en vois pas l'utilité. En effet, on économise quoi avec cette commande ? un clic et une valeur dans les propriétés, guère plus, donc l'intérêt est, pour le moins, minimal. En revanche, la précision du dessin s'en trouvera fortement entachée, les distances étant mesurées à l'axe de la polyligne lorsque cette dernière est épaissie toutes les cotations des dimensions de la pièce auront une erreur de la demi-épaisseur de la polyligne et de la valeur de l'épaisseur si deux murs sont cotés entre eux. Les hachures demeurent la meilleure solution, en gérant les calques, ce qui va sans dire. Amicalement Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Zaher_chn Posté(e) le 30 juin 2023 Auteur Posté(e) le 30 juin 2023 Bonjour @didier Je comprends très bien ton point de vue. L'objectif de cette commande serait de pouvoir faire une extraction de donnée afin d'en tirer un métré. Les cotation sont donc inutile pour moi. Avec une polyligne qui mesure 5 m avec une largeur globale de 20 cm et qui est dans un calque "Voile de hauteur 2,5 m_250" je serais capable d'obtenir un volume global sur un projet. La hachure m'est plutôt utile pour obtenir la surface d'un plancher ainsi que son volume s'il est dans une calque "Plancher épaisseur 20 cm_20". J'espère avoir été plus claire. Merci encore pour vos retour 🙂 Citer
Olivier Eckmann Posté(e) le 30 juin 2023 Posté(e) le 30 juin 2023 Bonjour, avec un bouton qui contient ^C^CPLINEWID;\\_PLINE ça demande 2 points pour définir la largeur, puis ça lance la commande polyligne Olivier Citer
didier Posté(e) le 30 juin 2023 Posté(e) le 30 juin 2023 Bonjour @Zaher_chn Dans ce cas, il faudrait déposer un exemple de dessin. Car il faut penser à automatiser la chose, en effet, je ne pense pas que redessiner à la main les polylignes épaisses décalées d'une demi-largeur soit très constructif ni très intéressant à faire. Amicalement 1 Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Luna Posté(e) le 30 juin 2023 Posté(e) le 30 juin 2023 Coucou, Il existe également la possibilité de travailler avec des MLINE mais d'un point de vue prise en main/modification, cet outil est totalement archaïque...Mais cela te permettrait de dessiner des murs avec certaines épaisseurs, à partir de l'axe et donc d'avoir à la fois le métré des murs et les cotations juste en ne dessinant les murs qu'une fois. Il existe également les mathématiques, après tout si tu utilises une polyligne fermée pour tes murs, que les murs ont une épaisseur constante, alors la longueur du mur à l'axe sera égale au périmètre de la polyligne moins 2 fois l'épaisseur du mur, me tout divisé par 2. Et chat c'est vrai tout le temps à partir du moment où tes polylignes sont fermées avec un décalage constant. Bisous, Luna 1 Citer
Zaher_chn Posté(e) le 30 juin 2023 Auteur Posté(e) le 30 juin 2023 Voici un exemple rapide, @didier, qui permet de voir ce que je souhaite réaliser avant d'extraire les données. Les murs extérieurs sont dans un calque à part, les murs intérieurs aussi et certains ont des épaisseurs différentes qui sera utiles pour avoir des volumes. Coucou @Luna, je ne pense pas avoir bien compris la procédure des MLINE, ça m'a l'air plus compliqué par rapport à la procédure initiale qui est de réaliser les polylignes épaisses et des décaler une par une. Merci Test.dwg Citer
dxxx01 Posté(e) le 30 juin 2023 Posté(e) le 30 juin 2023 je rejoint luna, pourquoi didier préfère donner son point de vue ? Qui a parlé de surface ? d'accord avec luna, il faut faire preuve d'imagination ça me rappel ma question sur BtoWB, ou je voulais en plus du DWG créer un bloc dans le DWG BABABA, pourquoi tu fait si, pourquoi tu fait ça, ce n'est pas logique ect...OK si je veux récupérer un bloc dans un Fichier.DWG c'est mon problème ET oui c'est POSSIBLE en MANUEL si BLOC EXISTE et BTOWB ALORS IL GARDE LE BLOC ET DANS MON DWG J'AI UN BLOC je recherchais juste a avoir un truc automatiser plus puissant Et pourquoi tu fait un bloc dans un DWG, tu sais un dwg c'est un bloc... ça ma gavé Citer
dxxx01 Posté(e) le 30 juin 2023 Posté(e) le 30 juin 2023 Attend Zaher_chn si tu écoute certain ici quand tu pose une question c'est tous juste si il ne veulent pas savoir si tu ne t'ai pas lavé les fesses ce matin Citer
dxxx01 Posté(e) le 30 juin 2023 Posté(e) le 30 juin 2023 ils sont curieux je n'ai jamais vue ça, des fois qu'il n y aurais pas pensé Citer
dxxx01 Posté(e) le 30 juin 2023 Posté(e) le 30 juin 2023 en faite je pense sans trop me tromper que tu peux le faire avec une macro, après il faut que quelqu'un ici te fasse le pti code 1 recherche rapide LIgne Si ligne = pedit to polyligne 2 recherche et selection polyligne 4 largeur gloabale = 20 cm si en Cm bien sur Si tu a des couleurs tu peux joué avec les couleurs pour selectionner certaine ligne et pas d'autre pour les transformer en Polyligne largeur Gloabale de 20 cm, le truc qui va coincé, c'est la valeur de 20 cm que tu veux sur chaque ligne Si tu a déja des largeurs globale sur le plan c'est idem 1 recherche des polyligne avec cette largeur globale 2 tu peux changer 3 pour la valeur que tu veux poser sur chaque ligne la je ne sais pas le faire mais avec un peu de lips cela doit être possible Citer
didier Posté(e) le 30 juin 2023 Posté(e) le 30 juin 2023 Bonjour @Zaher_chn Je te propose de te fournir un lisp qui va faire le job, mais j'ai besoin de savoir comment tu veux procéder. En effet, en regardant le dessin proposé, les polylignes devant être épaissies n'existent pas en tant que telles, il faut donc redessiner en passant par les sommets. Je suis à l'écoute pour connaître ton point de vue. Est-ce que quelque chose comme ça te conviendrait ? Dessin d'une polyligne dans le calque concerné, lancement d'une commande perso et c'est tout. 2023-06-30_15-22-08.mp4 Amicalement 1 Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
dxxx01 Posté(e) le 30 juin 2023 Posté(e) le 30 juin 2023 c'est deja sympas de lui répondre mais je ne veux pas être désagréable, mais il me semble qu'il souhaite quelque chose du genre tu clic sur la ligne et hop elle deviens largeur globale, si il y a une tite boite de doialogue qui lui demande quel valeur de largeur globale il veux, la je dis BRAVO dans ton exemple tu peux trés bien glisser une polyligne réglé dans la palette et quand tu clic sur son icone ça fait le meme chose Citer
Zaher_chn Posté(e) le 30 juin 2023 Auteur Posté(e) le 30 juin 2023 Merci pour ces retours assez rapide. Je ne sais pas en détail comment elle fonctionne ta commande mais ça à l'air de convenir. Est ce qu'il faut donner l'épaisseur de la polyligne en amont ou bien la largeur est récupérée au niveau du calque? Si jamais je change de calque, est ce que la largeur de la polyligne changera aussi? Le fait de redessiner en passant par les sommet me va très bien. Citer
didier Posté(e) le 30 juin 2023 Posté(e) le 30 juin 2023 Bonjour @Zaher_chn Je n'ai pas pensé à régler l'épaisseur en fonction du nom du calque. En effet, dans l'exemple proposé la polyligne à réaliser est dans le calque _MTH_Voile extérieur ht 2.80m_280 et je ne vois pas de renseignement d'épaisseur dans le nom. Il est tout à fait possible de trouver l'épaisseur à donner avec le nom de calque. Cependant, il faut savoir où trouver cette valeur dans le nom, par exemple dans celui-ci : _MTH_Plancher ep 20cm_20 on peut comprendre que l'épaisseur est dans les deux derniers caractères. Ensuite, il faut que l'utilisateur se mettre dans le bon calque courant, le programme ne devine rien, il exécute. Avec ma fonction, il est possible à l'utilisateur de donner une valeur d'épaisseur. Je viens de me rendre compte que les polylignes sont des segments uniques, je suis parti sur une polyligne périmétrique, est-ce problématique ? Car dans ce cas, elle devra être décalée des fois à gauche, des fois à droite et ça je ne l'ai pas prévu. Merci de m'aiguiller pour que je réponde dans les clous. Amicalement Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
didier Posté(e) le 30 juin 2023 Posté(e) le 30 juin 2023 @Zaher_chn Une autre solution serait de cliquer les deux côtés du mur (décomposés en entités LIGNE). Le premier clic étant pour avoir la longueur du mur, le deuxième pour calculer l'épaisseur. L'avantage de cette façon de faire est de ne rien à avoir à entrer comme valeur, c'est le dessin qui fait foi. L'inconvénient est qu'il faut que ces lignes existent, par exemple en présence de porte ou fenêtre ça ne fonctionne plus ! La programmation est une chose, les données dont on dispose une autre. Amicalement 1 Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Zaher_chn Posté(e) le 30 juin 2023 Auteur Posté(e) le 30 juin 2023 @didier La dernière option me semble bien. Est-il possible d’avoir juste à cliquer sur les deux extrémités du mur et que le troisième clic permette d’indiquer à la fois le côté du mur mais aussi l’épaisseur puisqu’on aura juste à cliquer sur l’autre face? En effet le fait d’avoir des portes et/fenêtres, ça complique les choses d’autant plus que j’ignore les ouvertures dans mon extraction de données. Citer
didier Posté(e) le 30 juin 2023 Posté(e) le 30 juin 2023 @Zaher_chn Je pense que c'est jouable, ça augmente le nombre de clics, mais ça assure le coup. Je te tiens au courant... Amicalement 1 Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
didier Posté(e) le 30 juin 2023 Posté(e) le 30 juin 2023 @Zaher_chn Voici ce que je propose. Il y a des soucis avec les deux derniers murs, la sélection est correcte ? Tu préfères autre chose ? 2023-06-30_17-22-19.mp4 Amicalement 1 Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Zaher_chn Posté(e) le 30 juin 2023 Auteur Posté(e) le 30 juin 2023 @didier C’est exactement comme ça que je voulais. Citer
didier Posté(e) le 30 juin 2023 Posté(e) le 30 juin 2023 @Zaher_chn Dans ce cas, voici le code : Attention, je ne gère pas le calque, tu dois te mettre dans le bon calque courant avant de lancer la commande DECMUR (defun c:decmur ( / di p1 p2 p3 pol) (setq p1 (getpoint "\nPremier point du mur\n")) (setq p2 (getpoint p1 "\nDeuxième point du mur\n")) (setq p3 (osnap (cadr (entsel "\nChoix du côté opposé du mur (épaisseur)\n")) "_nea")) (command "_pline" p1 p2 "") (setq pol (entlast)) ;(setq polvla (vlax-ename->vla-object pol)) (setq di (distance (vlax-curve-getclosestpointto (vlax-ename->vla-object pol) p3) p3)) (command "._offset" (/ di 2.0) pol p3 "" ) (vla-put-ConstantWidth (vlax-ename->vla-object (entlast)) di) (entdel pol) ) À ta disposition si à l'utilisation, tu penses à une modification/amélioration Amicalement 1 1 Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Zaher_chn Posté(e) le 30 juin 2023 Auteur Posté(e) le 30 juin 2023 Super, merci beaucoup @didier pour ton temps et pour ce code. je vais le tester et te ferais un retour rapidement, mais il m’a l’air parfait 😊 Citer
didier Posté(e) le 30 juin 2023 Posté(e) le 30 juin 2023 @Zaher_chn Rien n'est jamais parfait, c'est pourquoi je te parlais modification/amélioration. Je suis content d'avoir rendu service. Je reste disponible sur les forums dans cette optique. Amicalement 1 Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Messages recommandés