Gilson Posté(e) le 9 octobre 2022 Posté(e) le 9 octobre 2022 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… Citer
thierry.garré Posté(e) le 9 octobre 2022 Posté(e) le 9 octobre 2022 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...... Citer Thierry Garré Géorail-Covadis-Autopiste-Autocad-Autocad Map-Infraworks 360- Navisworks -Recap
Curlygoth Posté(e) le 9 octobre 2022 Posté(e) le 9 octobre 2022 hello, Une polyligne existe déjà ? ou est ce que le programme doit "rechercher" les points un par un pour te tracé quelque chose ? Citer Mon site Web (en cours de construction) : Site DA-CODE de @didier
didier Posté(e) le 9 octobre 2022 Posté(e) le 9 octobre 2022 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). Les points sont des entités POINT ou des blocs avec attributs, genre point topo ? 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 ? Je pense qu'on travaille en 2D, pas de renseignements Z ? Les chambres LT sont des blocs ou de simples lignes/polylignes ? Comment se relier aux chambres ? Pas de point sur le bord des chambres ? 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 ? Quelle version AutoCAD ? ce n'est pas une LT au moins ? Amicalement Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
La Lozère Posté(e) le 10 octobre 2022 Posté(e) le 10 octobre 2022 Bonjour, En haut la solution polyligne, tel que proposé par Thierry, en bas la solution spline. Citer www.cad-is.fr Autocad Map 2021 - Covadis/Autopiste V18.0c Pisser sous la douche ne suffira pas
thierry.garré Posté(e) le 10 octobre 2022 Posté(e) le 10 octobre 2022 C'est vrai que la spline est plus jolie. (mais bon je suis alergique 😁 ) Citer Thierry Garré Géorail-Covadis-Autopiste-Autocad-Autocad Map-Infraworks 360- Navisworks -Recap
Mathieu C Posté(e) le 10 octobre 2022 Posté(e) le 10 octobre 2022 On peut tracer avec une spline et ensuite avec PEDIT la transformer en polyligne. Citer 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.
Gilson Posté(e) le 10 octobre 2022 Auteur Posté(e) le 10 octobre 2022 Les splines c’est bien beau mais puisque je dois coller une épaisseur de 0.5 sur mes polylignes eh ben je ne peux les utiliser. Ensuite quand je le modifie pour le mettre en polyligne, ca me donne une polyligne en 3D et je ne peux pas changer d’épaisseur de ligne Citer
Luna Posté(e) le 10 octobre 2022 Posté(e) le 10 octobre 2022 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 Citer
Gilson Posté(e) le 10 octobre 2022 Auteur Posté(e) le 10 octobre 2022 Bonjour : 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 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. Je pense qu'on travaille en 2D, pas de renseignements Z ? Oui on est en 2D Les chambres LT sont des blocs ou de simples lignes/polylignes ? Les chambres sont des blocs, j’utilise des toujours des polylignes, 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 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 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 Citer
Olivier Eckmann Posté(e) le 10 octobre 2022 Posté(e) le 10 octobre 2022 Il suffit de mettre la variable OSNAPZ à 1 pour que la spline soit dessinée à Z=0 donc la conversion via clic droit / Spline / Convertir en polyligne génère une poly 2D et non pas une poly3D, afin de pouvoir lui mettre une largeur globale. Olivier 1 Citer
didier Posté(e) le 10 octobre 2022 Posté(e) le 10 octobre 2022 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 Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
didier Posté(e) le 10 octobre 2022 Posté(e) le 10 octobre 2022 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 18EAE05A-2A74-43A3-A70E-8CA8F6926BBD.MP4 Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Curlygoth Posté(e) le 10 octobre 2022 Posté(e) le 10 octobre 2022 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 ^^ Citer Mon site Web (en cours de construction) : Site DA-CODE de @didier
didier Posté(e) le 10 octobre 2022 Posté(e) le 10 octobre 2022 @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 Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Curlygoth Posté(e) le 10 octobre 2022 Posté(e) le 10 octobre 2022 @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 ^^ Citer Mon site Web (en cours de construction) : Site DA-CODE de @didier
bonuscad Posté(e) le 11 octobre 2022 Posté(e) le 11 octobre 2022 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 "") ) ) )) Citer Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
didier Posté(e) le 11 octobre 2022 Posté(e) le 11 octobre 2022 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 Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
bonuscad Posté(e) le 11 octobre 2022 Posté(e) le 11 octobre 2022 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é 😉 Citer Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
didier Posté(e) le 11 octobre 2022 Posté(e) le 11 octobre 2022 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 Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Olivier Eckmann Posté(e) le 12 octobre 2022 Posté(e) le 12 octobre 2022 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 1 Citer
Gilson Posté(e) le 12 octobre 2022 Auteur Posté(e) le 12 octobre 2022 Merci à tous pour votre participation. Plusieurs méthodes mais c'est la finalité qui compte. Vous êtes des bons Citer
Messages recommandés