Aller au contenu

commande polyligne avec largeur globale


Zaher_chn

Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

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

 

 

Lien vers le commentaire
Partager sur d’autres sites

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

 

Lien vers le commentaire
Partager sur d’autres sites

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 🙂

Lien vers le commentaire
Partager sur d’autres sites

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

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

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

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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é

 

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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.

 

 

 

 

Amicalement

 

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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

 

Lien vers le commentaire
Partager sur d’autres sites

@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

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

@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.

Lien vers le commentaire
Partager sur d’autres sites

@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

  • Like 1
  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é