Aller au contenu

Problème de Polyligne Autocad


Gilson

Messages recommandés

Bonsoir ;

J’ai deux chambres de tirage espacées de quelques dizaines mètres.

Une polyligne est obligée les relier mais elle passe obligatoirement par des points bien précis.

Je souhaite donc que cette polyligne soit telle une courbe ou une spline ou même un lissage, mais à condition d’éviter qu’elle fasse des carrés, des obliques, des brisées ou des angles presque droits.

Si quelqu’un a une idée de commande ou même un lisp, je suis preneur.

Merci d’avance…

Exemple.jpeg

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

tu dessine ta polyligne en passant par les points, puis tu la selectionne -> clic droit-> polyligne-> ajuster la courbe

 

ou alors j'ai pas compris......

Thierry Garré

 

Géorail-Covadis-Autopiste-Autocad-Autocad Map-Infraworks 360- Navisworks -Recap

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Gilson

"mais à condition d’éviter qu’elle fasse des carrés, des obliques, des brisées ou des angles presque droits."
Relier par une spline évitera ce genre de souci, ou alors, je n'ai pas compris.

On a tellement peu de renseignement que pour répondre, on doit poser des questions.
(Ce qui est une bonne façon de décourager les gens de répondre).

  1. Les points sont des entités POINT ou des blocs avec attributs, genre point topo ?
  2. Les points à relier sont au milieu d'autres points et il faudra filtrer ou est-ce vraiment comme sur le schéma ?, juste quelques points sélectionnables par capture ?
  3. Je pense qu'on travaille en 2D, pas de renseignements Z ?
  4. Les chambres LT sont des blocs ou de simples lignes/polylignes ?
  5. Comment se relier aux chambres ? Pas de point sur le bord des chambres ?
  6. Tel que c'est dessiné, à la mano, on pourrait croire qu'il suffit de filtrer par ordre croissant des X, est-ce toujours le cas ou non ?
  7. Quelle version AutoCAD ? ce n'est pas une LT au moins ?
     

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

On peut tracer avec une spline et ensuite avec PEDIT la transformer en polyligne.

Anciennement ZZA427 sur CADXP, je ne fais quasiment plus d'Autocad, mais je viens voir si la partie REVIT du Forum est active.

 

Un crédo que j'aime bien : Nul n'est si vieux qu'il ne puisse apprendre, nul n'est si jeune qu'il ne puisse enseigner.

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

Si cela te converti la spline en Polyligne 3D alors cela signifie que ta spline passe par des points 3D. Donc si tu veux que ta spline passe par des points 3D, tu n'as pas d'autre choix que d'avoir une Poly3D donc pas de largeur globale (mais tu peux toujours utiliser les épaisseurs de ligne). Si tu veux utiliser la propriété "largeur globale" alors tu dois avoir une polyligne donc tu dois avoir une spline sans coordonnées Z (la conversion spline/polyligne décide si cela doit se faire en polyligne ou Poly3D en fonction de la présence de coordonnées Z différentes entre les points de la spline) !

Si tu as un AutoCAD full, tu peux utiliser des lisps pour convertir les Poly3D en polyligne par exemple. Autrement, si le but est de tracer directement une spline à partir de points topo (mais sans prendre en compte les Z), alors il faudra que l'on étudie ton cas spécifique pour te proposer un programme spécifique. Auquel cas, un DWG avec les données d'entrées puis un rendu souhaité serait le bienvenue pour que l'on puisse travailler sur les mêmes bases que toi (car un dessin papier ne permet pas de faire de la programmation ^^").

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

Bonjour :

  1. Les points sont des entités POINT ou des blocs avec attributs, genre point topo ?

Oui, les points sont des blocs avec atttribut contenant l’altimétrie

  1. Les points à relier sont au milieu d'autres points et il faudra filtrer ou est-ce vraiment comme sur le schéma ?, juste quelques points sélectionnables par capture ?

Parfois il faut faire décaler de 0.12, pour récupérer une polyligne venant du trottoir d’en face par exemple. Eh ben quand on fait ajuster ca me fait des ronds bizarres sur tout le plan.

  1. Je pense qu'on travaille en 2D, pas de renseignements Z ?

Oui on est en 2D

  1. Les chambres LT sont des blocs ou de simples lignes/polylignes ?

Les chambres sont des blocs, j’utilise des toujours des polylignes,

  1. Comment se relier aux chambres ? Pas de point sur le bord des chambres ?

Par les points alti qui ont été fixés sous forme de croix

  1. Tel que c'est dessiné, à la mano, on pourrait croire qu'il suffit de filtrer par ordre croissant des X, est-ce toujours le cas ou non ?

Oui, ils sont par ordre croissants, et sur certains plans ce n’est pas le cas

  1. Quelle version AutoCAD ? ce n'est pas une LT au moins ?

Autocad 2021, version normale

 

Si quelqu'un veut bien me montrer au niveau de la première chambre de tirage, sur une ou deux polylignes dans le petit cercle rouge, je lui en serai infiniment reconnaissant
 

 

Récolement Numéricable Rue Béatrice CC49.dwg

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Gilson

Dans ce cas de figure, ce n'est pas possible d'automatiser.

Je dis bien "dans ce cas", car il n'y a pas de relation logique entre les points, ou je n'en ai pas trouvé !
Il y a des sommets sans point, les points n'ont pas de numéro qui permettraient de les relier dans le sens croissant, pas d'indication de distance par rapport au début non plus, ça aurait permis de trouver une relation.

En plus il faut quelquefois : décaler de 0.12, pour récupérer une polyligne venant du trottoir d’en face
Comment indiquer cette subtilité au programme ????

Eh ben quand on fait "ajuster" ça me fait des ronds bizarres sur tout le plan.
Qu'est-ce que ça peut bien vouloir dire ????

Pour finir et expliquer ma première ligne, il manque des données, la programmation ça consiste à traiter des données, en étudiant les relations entre les données, les points topo en l'occurrence.

Par exemple, si un ordre croissant d'attributs existait dans les points, 1,2,3,4.... la polyligne se dessinerait en un clic.

Dans l'exemple donné, les polylignes ont des angles saillants, pas de spline ni de polyligne lissée, pourquoi cette question de la forme si elle n'est pas mise en œuvre dans l'exemple à réaliser ?

Il n'y a pas de "point" dans le bloc point topo, pas simple pour les relier "à la main".

Sans intention de manquer de respect à quiconque, il faut améliorer la prise de point et le dessin pour penser traiter ces données par un programme.
La première chose à faire est de leur donner un ORDRE, point1 point2 point3.... dans une valeur d'attribut, c'est facile avec le numéro de point au moment du levé.

Dans ce cas, un programme sera aisé à réaliser.

Amicalement

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Gilson

Pour illustrer ma réponse dans le message précédent :

Exemple de polyligne dessinée automatiquement entre des points avec attributs croissants.
Tout est possible, quand on a les bonnes données.

Dans ce dessin, j'ai demandé une polyligne entre le point 1 et le point 18.
Je n'ai pas été loin dans l'exemple, mais s'il y avait eu 300 points, ça n'aurait pas pris plus de temps, on peut le faire en poly 2D ou 3D, en spline, en poly lissée ...

Amicalement

 

Lien vers le commentaire
Partager sur d’autres sites

 s'il n'y a pas de point de niveau fini (ou mieux les ecarter) avant de lancer la procédure qui recherche les points les plus proche et s'il a déjà été relié on ne le prend pas en compte

sur le dessin de didier sa fera 1 / 2 / 32 / 3 / 4 / 5 / 6 / 33 / 7 ...

et si on écarte en amont le 32 33 on aurait le meme résultat jusqu'a 12 ! car le point 17 est peut etre plus proche que le point 13 ^^

Lien vers le commentaire
Partager sur d’autres sites

@Curlygoth

Ce n'est pas la question de mon programme que j'ai mis en exemple pour expliciter à @Gilson l'intérêt d'avoir une "vraie" relation entre les points.

Dans un le levé topo "classique" relier les points en fonction de la distance minimale entre eux est une hérésie.
Par contre, on peut imaginer que la personne qui va relever le réseau de fibre optique (par exemple) va commencer au début pour lever dans l'ordre de création.
Si deux réseaux sensiblement parallèles sont à relever, on va prendre un point une fois sur l'un une fois sur l'autre et dans ce cas, il va falloir trouver une notation qui permet de relier les points "intelligemment", en utilisant les codes de levé topo en préfixe du réseau par exemple, mais c'est une gymnastique que la personne qui est sur le terrain est la seule qui puisse la mettre en œuvre.

Amicalement

 

Lien vers le commentaire
Partager sur d’autres sites

@didier

Citation

Dans un le levé topo "classique" relier les points en fonction de la distance minimale entre eux est une hérésie.

Complement d'accord avec toi !

et oui une suite est toujours plus simple, plus clair,plus propre mais parfois ce n'est pas le cas ^^.

apres oui on peux faire appel un module pour sélectionner les points pour les mettres dans le bon ordre mais autant dessiner directement ^^

Lien vers le commentaire
Partager sur d’autres sites

Il y a 20 heures, Gilson a dit :

Si quelqu'un veut bien me montrer au niveau de la première chambre de tirage, sur une ou deux polylignes dans le petit cercle rouge, je lui en serai infiniment reconnaissant

Bonjour,

Ce qui peut être envisager; c'est de se baser sur le handle de l'entité bloc pour le classer.

Ce n'est pas parfait, mais dans le cercle rouge, cela à l'air de fonctionner: sauf le raccord aux chambres... Utiliser les grips pour ajouter les sommets aux chambres.

Exemple succinct du code

((lambda ( / )
	(setq js (ssget '((0 . "INSERT") (8 . "EDF-AR_VDC") (62 . 1) (2 . "TP_POINT"))) l nil)
	(cond
		(js
			(repeat (setq n (sslength js))
				(setq l (cons (cdr (assoc 5 (entget (ssname js (setq n (1- n)))))) l))
			)
			(setq l (vl-sort l '<))
			(command "_.pline")
			(foreach e l
				(command "_none" (cdr (assoc 10 (entget (handent e)))))
			)
			(command "")
		)
	)
))

 

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @bonuscad

Il semble qu'on va entamer une discussion...théorique.
Je dirais que l'utilisation du HANDLE revient à utiliser l'ordre d'apparition du point dans la base de données du DWG, on est d'accord ?

Ces points existent dans un fichier ascii qui sont exportés (puis intégrés dans AutoCAD) dans leur ordre de prise de mesure.
L'ordre de prise de mesure n'est pas forcément l'ordre qui devra être utilisé pour créer les polylignes.
Exemple simple : une zone de levé n'est pas accessible (camions garés), on la saute et on revient quand les véhicules ne sont plus là.

Tout ça pour enfoncer le clou de ce que je tentais d'expliquer à @Gilson que ce n'est pas simple de lier ces points dans l'ordre de l'objet (réseau), ne sachant pas les relations entre les points.

Ta proposition sera fonctionnelle dans la plupart des cas, mais pas un programme générique.
Toutefois, il est possible que ces levés soient "simplistes" et ne contiennent que des points de réseaux linéaires et que les points apparaissent dans l'ordre de liaison et que donc ton programme satisfasse la demande.

De plus en plus souvent, on reçoit des demandes compliquées par le manque de données entrantes, les "gens" pensant que la programmation est magique.

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @didier

Je suis entièrement d'accord avec toi!

Ce que j'ai proposé est seulement un "pis aller" (j'ai bien dis que c'était un code succinct) qui peut répondre à sa demande vu les éléments disponibles dans son DWG.

Ce n'est pas la panacée, mais ça peut simplifier le travail tout en sachant qu'un contrôle sera obligatoire en fin d'exécution, on ne peut faire une confiance aveugle au code proposé...

Si il ne peut pas avoir d'infos supplémentaire sur ces points levés, je ne voit que cette solution bancale pour approcher à la résolution partielle du problème.

Il est certain qu'un codage des points levés serait la solution la plus viable, mais j'ai l'impression que le mal est fait (j’exclue qu'un nouveau levé soit exécuté en bon et du forme sans moyenner finances). Tes explications le rendront plus pertinent pour ses prochaines demandes de travaux de levé 😉

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Merci @bonuscad

Je suis content de constater qu'on est sur la même longueur d'ondes.
Je mets le doigt dessus, même si ça fait mal, car il ne faut plus que les gens croient que les programmeurs sont des magiciens qui en partant de rien savent faire un tout.
Sans données de base on ne peut rien faire ou très peu !

Des fois les gens comprennent, des fois non et ils parlent alors de condescendance, ce qui est vexant.

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Je me trompe peut-être, mais il me semble que la question initiale ne portait pas sur l'automatisation du dessin, mais sur la possibilité de créer une polyligne épaisse (largeur globale) avec une jolie forme lissée passant obligatoirement par les points levés. 

La spline répondait à la problématique, mais comme elle est accrochée sur des points 3D, elle est 3D, donc sa conversion en polyligne génère une poly 3D non "épaississable".  @Gilson indiquait qu'il travaillait en 2D, mais les points relevés sont en 3D, donc la spline qui s'accroche dessus est bien 3D.

D'où ma proposition de OSNAPZ à 1 pour ne pas tenir compte du Z dans le dessin de la spline, qui permet de la convertir en poly2D puis de l'épaissir.

https://autode.sk/3Coghak

 

Olivier

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