crashray Posté(e) le 7 mars 2012 Posté(e) le 7 mars 2012 Bonjour,Je poste dans ce topic mais peut-être Autocad le fait d'origine. Je fais du levé de voie ferrée donc je relève l'intérieur des 2 fils de rail et ça tous les 1/2/5/10/30 m, ça dépend du type de levé. En reliant ces points, j'obtiens sur autocad 2 polylignes. http://data.imagup.com/12/1145778041.JPGEt je voudrais pouvoir sortir dans un tableau excel, un truc de ce genre :http://data.imagup.com/12/1145777874.JPGEt je voudrais pouvoir avoir la possibilité de sortir un tableau qui affiche tous les mètres ou tous les 5mètres, etc... En clair, on extrapole sur l'altitude à un point en regardant les 2 points les plus proches. Et pour l'écartement, actuellement, je lisse mes polylignes, je divise une des polyligne en segment de x longueur et je trace des perpendiculaires et après je prends les côtes de ces perpendiculaires dans un tableau. Mais tout ça à la main !! Et c'est long et source d'erreur. Comment puis-je faire ça plus "automatiquement" ? Merci Autodesk - 24.0.30.17 - Autodesk AutoCAD Map 3D 2021.0.1 Géomedia - Version 17.1h - Covadis Microsoft - 21H2 - Windows 10 64 bits Leica - Version - LEICA TS13 + CS20
bryce Posté(e) le 7 mars 2012 Posté(e) le 7 mars 2012 Bonjour, Pourrais-tu poster un dwg exemple ? Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
bryce Posté(e) le 7 mars 2012 Posté(e) le 7 mars 2012 Je ne connais pas Covadis, dont les commandes permettent peut-être de faire ce que tu veux. Mais pour le fun, j'ai fait une ébauche de lisp d'après ce que j'ai compris de ta demande: (defun C:RAILS ( / delim acdoc acspace e1 e2 inc dist count len pt1 pt2) (vl-load-com) (setq delim ";") (setq acdoc (vla-get-activedocument (vlax-get-acad-object))) (if (= (getvar "CTAB") "Model") (setq acspace (vla-get-modelspace acdoc)) (setq acspace (vla-get-paperspace acdoc)) ) (setq e1 (vlax-ename->vla-object (car (entsel "\nChoix du 1er rail : ")))) (setq e2 (vlax-ename->vla-object (car (entsel "\nChoix du 2e rail : ")))) (setq inc (getreal "\nIncrément de distance : ")) (setq dist 0.0) (setq count 0) (setq len (vlax-curve-getDistAtParam e1 (vlax-curve-getendparam e1))) (princ (strcat "\nN°" delim "Z1" delim "Z2" delim "Ecart")) (while (<= dist len) (setq pt1 (vlax-curve-getPointAtDist e1 dist)) (setq pt2 (vlax-curve-getClosestPointTo e2 pt1)) (vla-addline acspace (vlax-3D-point pt1) (vlax-3D-point pt2)) (princ (strcat "\n" (itoa count) delim (rtos (caddr pt1) 2 3) delim (rtos (caddr pt2) 2 3) delim (rtos (distance pt1 pt2) 2 3))) (setq dist (+ dist inc)) (setq count (+ 1 count)) );while (textscr) (princ) ) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
crashray Posté(e) le 9 mars 2012 Auteur Posté(e) le 9 mars 2012 Voilà un dwg exemple. Par iciDeux polylignes à tracer et sortir tableau écartement et alti tous les mètres.Je vais voir comment utiliser ton Lisp. merci de l'aide Edition :Voici un fichier plus complet Il s'agit d'un levé avec des points quelquefois tous les mètres mais quelquefois tous les 4m. Je voudrais pouvoir :- effacer tous les points pris (sauf station)- recréer sur une des 2 polylignes les point topos tous les mètres avec altitude extrapolé par rapport au levé- créer les points topos perpendiculaires sur l'autre polyligne=> Sortir dans un tableau Colonne 1: X (donc de 1 à 260m par exemple)Colonne 2: Altitude Voie 1Colonne 3: Altitude Voie 2Colonne 4: distance la plus courte (écartement en voie ferrée) Le seul truc important c'est le tableau, le reste c'est mon idée pour arrivée à mes fins mais il n'y a peut-être pas besoin. Autodesk - 24.0.30.17 - Autodesk AutoCAD Map 3D 2021.0.1 Géomedia - Version 17.1h - Covadis Microsoft - 21H2 - Windows 10 64 bits Leica - Version - LEICA TS13 + CS20
vincentp010 Posté(e) le 9 mars 2012 Posté(e) le 9 mars 2012 Essais ça voir si ça te convient:(les polylignes doivent être en 3D)(vl-load-com) (defun init-excel (/ wb-collection workbook sheets sheet1) (setq excel-app (vlax-create-object "excel.application")) (setq wb-collection (vlax-get excel-app "workbooks")) (setq workbook (vlax-invoke-method wb-collection "add")) (setq sheets (vlax-get workbook "sheets")) (setq sheet1 (vlax-get-property sheets "item" 1)) (setq *excel-cells* (vlax-get sheet1 "cells")) (vlax-put excel-app "visible" 1) ) (defun write-row-column (row col x) (vlax-put-property *excel-cells* "item" row col x ) ) (defun c:rails (/ ent ent1 nb) (setq ent (vlax-ename->vla-object (car (entsel "Selectionnez le premier rail :")))) (setq ent1 (vlax-ename->vla-object (car (entsel "Selectionnez le second rail :")))) (setq dist (getreal "Incrementation: ")) (init-excel) (write-row-column 1 1 "DISTANCE") (write-row-column 1 2 "ALTI RAIL 1") (write-row-column 1 3 "ALTI RAIL 2") (write-row-column 1 4 "ECARTEMENT") ; division de la polyligne suivant dist (setq param_start (vlax-curve-getStartParam ent) param_end (vlax-curve-getEndParam ent) perim_obj (vlax-curve-getDistAtParam ent (+ param_start param_end)) l_pt '() lg 0.0 ) (while (< (+ lg dist) perim_obj) (setq l_pt (cons (vlax-curve-getPointAtDist ent (setq lg (+ lg dist))) l_pt)) ) ; fin division, liste dans l_pt (setq nb 2) (foreach pt l_pt (setq pt1 (vlax-curve-getClosestPointto ent1 pt)) (write-row-column nb 1 (* dist (- nb 1))) (write-row-column nb 2 (vl-string-subst "," "." (rtos (caddr pt) 2))) (write-row-column nb 3 (vl-string-subst "," "." (rtos (caddr pt1) 2))) (write-row-column nb 4 (vl-string-subst "," "." (rtos (distance pt pt1) 2))) (setq nb (+ nb 1)) ) ) Aide au téléchargement du cadastre dgfip-download-helper Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0 Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js
Olivier Eckmann Posté(e) le 9 mars 2012 Posté(e) le 9 mars 2012 Bonjour, c'est un peu plus long avec les commandes COVADIS, mais on peut y arriver 1. passer les poly en 3D : Cov 3D / Construction 3D / Transfo 2D-3D 2. tabuler la polyligne de gauche : Cov3D / Profils en travers par poly / Tabuler un axe , choisir l'objet type LIGNE et choisir l'intervalle.3. créer les points 3D par interpolation à chaque intersection de la tabul avec les poly3D : CovEchanges / Echange profils piste / Interpolation profils, choisir "Interpolation par rapport à des lignes caractéristiques", puis le calque du peigne puis le calque des poly3D4. générer le listing Piste : CovEchanges / Echange profils piste / Génération fichier Piste, choisir le format N S , vider le nom du calque pour les points de chaussée. On obtient un fichier SEM (fichier texte) composé de 2 lignes par profil, la 1ère ligne contient le numéro du profil et son abscisse curviligne, la 2ème ligne contient 0.00 en 1ère colonne puis l'altitude G, puis la distance entre les 2 points puis l'altitude Droite Si le fichier SEM n'est pas évident à remettre en forme,on peut essayer d'utiliser directement les points.Normalement le rail de gauche possède les points avec un matricule impair et le rail droit, ceux avec un matricule pair. En exportant les 2 séries de points sous excel, puis avec un colonne qui calcule la distance entre les 2 points on doit y arriver aussi Olivier
extrusion Posté(e) le 12 mars 2012 Posté(e) le 12 mars 2012 Bonjour, En supposant que les rails sont bien parallèles et de même longueur : Créer un cercle, le transformer en bloc.Vérifier les sens de parcours identiques des deux rails en poly 3D. CoVédition-Bloc-Mesurer : tous les 1m Bloc - Calq uniqueImmatriculation d'entité : répondre oui pour immatriculer les centres des cercles et sélectionner les blocs créés... Re-belotte rail n°2 exporter les points dans excel, le reste c'est du tableur. Si au fil des mètres-linéaires de rail, un décalage apparaît entre le point de gauche et le point de droite, il faudra faire autrement.... Par exemple : tabuler un des rails à l'aide de polyligne tous les 1 m. La tabulation créée doit couper l'autre rail. MAP3D, nettoyage du dessin, couper les objets à une intersection.Ensuite il faut supprimer les sommets de polylignes 3D superflus par un lissage 3D approprié. on obtient autant de polylignes3D que de ml de rail. On joint tout ça et on immatricule. Export et tableur... Pierre
crashray Posté(e) le 12 mars 2012 Auteur Posté(e) le 12 mars 2012 ça a l'air de bien fonctionner. Je suis arrivé là :http://data.imagup.com/11/1146204983.JPGje ne comprends pas très bien ce que signifie "vider le nom du calque pour les points de chaussée." Comment dois-je renseigner cette fenêtre ?Je pense que j'ai un problème de calque.Faut-il un calque pour :- les tabulations (actuellement TN_tabulation)- les 2 poly 3D (actuellement BF_VF)- les points créés (actuellement dans TOPOJIS mais avec les points du levé) Merci Edit : En mettant un calque pour les points créés, ça marche bien. Comment exporter les points pairs et les points impairs ? Cov2D>Point Topo>Ecriture d'un fichier de point>Fichier de point colonné ?Edit 2 : pour le script, je vais voir comment l'utiliser, je n'ai jamais utiliser de script avec autocad.Edit 3:J'ai utilisé la technique ici (http://acadplus.free.fr/mb080503.htm).J'ai transformé au préalable mes 2 polyligne en poly 3D. Quand je lance, ça donne ça :Commande: (load "ecartement_alti") C:RAILSEt ça semble s’arrêter. Bonjour, c'est un peu plus long avec les commandes COVADIS, mais on peut y arriver 1. passer les poly en 3D : Cov 3D / Construction 3D / Transfo 2D-3D 2. tabuler la polyligne de gauche : Cov3D / Profils en travers par poly / Tabuler un axe , choisir l'objet type LIGNE et choisir l'intervalle.3. créer les points 3D par interpolation à chaque intersection de la tabul avec les poly3D : CovEchanges / Echange profils piste / Interpolation profils, choisir "Interpolation par rapport à des lignes caractéristiques", puis le calque du peigne puis le calque des poly3D4. générer le listing Piste : CovEchanges / Echange profils piste / Génération fichier Piste, choisir le format N S , vider le nom du calque pour les points de chaussée. On obtient un fichier SEM (fichier texte) composé de 2 lignes par profil, la 1ère ligne contient le numéro du profil et son abscisse curviligne, la 2ème ligne contient 0.00 en 1ère colonne puis l'altitude G, puis la distance entre les 2 points puis l'altitude Droite Si le fichier SEM n'est pas évident à remettre en forme,on peut essayer d'utiliser directement les points.Normalement le rail de gauche possède les points avec un matricule impair et le rail droit, ceux avec un matricule pair. En exportant les 2 séries de points sous excel, puis avec un colonne qui calcule la distance entre les 2 points on doit y arriver aussi Olivier Autodesk - 24.0.30.17 - Autodesk AutoCAD Map 3D 2021.0.1 Géomedia - Version 17.1h - Covadis Microsoft - 21H2 - Windows 10 64 bits Leica - Version - LEICA TS13 + CS20
vincentp010 Posté(e) le 12 mars 2012 Posté(e) le 12 mars 2012 J'ai transformé au préalable mes 2 polyligne en poly 3D. Quand je lance, ça donne ça :Commande: (load "ecartement_alti") C:RAILSEt ça semble s’arrêter.En fait là tu as juste chargé le script dans le dessin.Maintenant si tu tape la commande rails il doit se lancer. Aide au téléchargement du cadastre dgfip-download-helper Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0 Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js
crashray Posté(e) le 12 mars 2012 Auteur Posté(e) le 12 mars 2012 En fait là tu as juste chargé le script dans le dessin.Maintenant si tu tape la commande rails il doit se lancer. :o :o :o THIS IS GOOD !! Je crois qu'il faut que je me mette au LISP. Me reste plus qu'à bosser ton .lsp.Merci beaucoup ;) Autodesk - 24.0.30.17 - Autodesk AutoCAD Map 3D 2021.0.1 Géomedia - Version 17.1h - Covadis Microsoft - 21H2 - Windows 10 64 bits Leica - Version - LEICA TS13 + CS20
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