Aller au contenu

création de point topo avec alti régulière type ligne de niveau sur poly3D


sepacap

Messages recommandés

bonjour

j'aimerais savoir si sur covadis il existe une fonction qui permet de créer sur une polyligne 3D, des points topo a intervalle régulier (exemple: type tous les 10 cm en alti ) comme une ligne de niveau

merci de réponse

bonne journée

Lien vers le commentaire
Partager sur d’autres sites

tu as quelle version de autocad?...

Et question bete je pense... mais c'est bien noté "polyligne 3D" dans le tableau de propriétés à la sélection de ta polyligne?

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Il faut avoir la BONNE version !

 

MERCI Bruno, Bon WE, Bye, lecrabe (Puise dans mon stock de 2000 routines)

 

 
;; 
;; http://cadxp.com/topic/42861-reperer-une-altitude-sur-une-poly-3d/page__pid__243783
;;
;; http://cadxp.com/topic/17241-interpolation-dune-polyligne/
;;
;; Routine: Z_Interval par Bonuscad
;; 
;; 
;; Imaginons que tu ais une polyligne (en montagne russe, ou pas) d'une dénivellée en Z de 530.6987 unités.
;; 
;; En appliquant le code est en donnant un interval de 100 unités, 
;; et bien il va te dessiner tous les points qui seront à 100, 200, 300, 400 et 500 unités en Z sur la polyligne3D.
;; 
;; A partir de là, tu pourrais par exemple faire passer manuellement tes courbes de niveaux 
;; par les points respectifs sans avoir besoin de construire un MNT et de l'interpoler. 
;; 
;; Donc sans Covadis ou autres applicatifs, ça peut rendre service pour des petits travaux.
;; 
;; Bien avant, pour faire cela, je jouais avec la delimitation Avant et Arrière avec un écart très faible de la commande VUEDYN en vue de dessus; 
;; ca symbolisait des points virtuels qui me servaient de repères visuel de tracé (c'était il y a bien longtemps...) 
;; 


(defun round_number (xr n / )
 (* (fix (atof (rtos (* xr n) 2 0))) (/ 1.0 n))
) 

(defun c:Z_Interval ( / js dxf_ent vla_obj n pt_lst z_value z_min z_max pt_int)
 (vl-load-com)
 (princ "\nSelectionnez une Polyligne 3D ")
 (while
   (null
     (setq js
       (ssget "_+.:E:S"
         (list
           '(0 . "POLYLINE")
           (cons 67 (if (eq (getvar "CVPORT") 1) 1 0))
           (cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model"))
           '(-4 . "&")
           '(70 . 8)
         )
       )
     )
   )
   (princ "\nCe n est pas une Polyligne 3D ! ")
 )
 (setq
   dxf_ent (entget (ssname js 0))
   vla_obj (vlax-ename->vla-object (cdar dxf_ent))
   n -1
   pt_lst nil
 )
 (if (zerop (getvar "USERR1")) (setvar "USERR1" 1.0))
 (initget 6)
 (setq z_value (getreal (strcat "\nEntrez l'interval en Z <" (rtos (getvar "USERR1")) ">: ")))
 (if (not z_value) (setq z_value (abs (getvar "USERR1"))))
 (setvar "USERR1" z_value)
 (repeat (fix (vlax-curve-getEndParam vla_obj))
   (setq pt_lst (cons (vlax-curve-getPointAtParam vla_obj (setq n (1+ n))) pt_lst))
 )
 (if (zerop (boole 1 1 (cdr (assoc 70 dxf_ent))))
   (setq pt_lst (cons (vlax-curve-getEndPoint vla_obj) pt_lst))
   (setq pt_lst (cons (vlax-curve-getStartPoint vla_obj) pt_lst))
 )
 (while (cdr pt_lst)
   (setq
     z_min (round_number (min (caddar pt_lst) (car (cddadr pt_lst))) (/ 1 z_value))
     z_max (max (caddar pt_lst) (car (cddadr pt_lst)))
   )
   (while (< z_min z_max)
     (setq pt_int
       (inters
         (car pt_lst)
         (cadr pt_lst)
         (list (caar pt_lst) (cadar pt_lst) z_min)
         (list (caadr pt_lst) (cadadr pt_lst) z_min)
         T
       )
     )
     (if pt_int
       (entmake
         (list
           (cons 0 "POINT")
           (cons 100 "AcDbPoint")
           (cons 10 pt_int)
           (list 210 0.0 0.0 1.0)
         )
       )
     )
     (setq z_min (+ z_min z_value))
   )
   (setq pt_lst (cdr pt_lst))
 )
 (prin1)
)

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

j'ai une version 2011... c'est peut etre une question de version! le LISP date de 2007 apparemment...

Essaie de voir avec son créateur ou un Lispeur! là, je ne peux plus t'aider! désolé...

 

Edit : Ben voilà... merci LeCrabe ! J'en profite pur mettre ma version à jour également! ;)

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

Lien vers le commentaire
Partager sur d’autres sites

Le problème vient qu'à l'époque, on était obligé d'utiliser des bbcodes pour que le code soit afficher correctement sur le forum notamment le symbole > qui était pris pour un symbole de redirection et matraquait l'affichage.

 

Depuis ce problème ne se pose plus mais les bbcodes sont désormais affichés sur ces anciennes pages et perturbe les copiés-collés.

Celui de Lecrabe est bon et correspond bien, je ne l'ai pas retravaillé depuis.

 

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

Je ne sais pas de quoi tu parles BonusCad, mais je te fais confiance !!! laugh.gif

Comme dirais Aznavour

 

Je vous parle d'un temps Que les moins de vingt ans Ne peuvent pas connaître laugh.giflaugh.giftongue.gif

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

Coucou

 

Puisqu'on est dans le forum Covadis on devrait parler à des gens qui, sans maîtriser, connaissent bien AutoCAD

Alors ce que je me permets de conseiller :

Créer polyligne 2 D avec en valeur d'élévation la valeur Z qui va bien

Avec une poly 2D on peut la lisser en plus, ce n'est pas possible avec une poly 3D

AutoCAD : commande : mesurer, répondre équidistance souhaitée

Covadis : Immatriculer : sélectionner les points créés par la commande mesurer

 

Pas de lisp, juste une connaissance de base des fonctions existantes.

 

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

@ BonusCad,

Oh pinaise... la claque là... j'ai 43ans! :blink: :(rires forts):

Mais bon... sûr que je ne suis pas dans le métier depuis aussi longtemps que vous!

 

@Didier,

-Tu fais comment pour reprendre un LISP sans faire de copier-coller? surtout quand on n'y connait rien en LISP...

-Par contre, j'ai fait ta manip' (pour mes bonnes connaissances de AutoCad qui sont, toujours, à parfaire), et je n'arrive pas au résultat escompté.

Je crois que ta solution propose un intervalle planimétrique alors que c'est un intervalle altimétrique qui est demandé.

Oserai je te demander si tu as bien lu le souhait de Sepacap Ô grand Didier? :unsure:

(mode jeune petit impertinent OFF) :(rires forts):

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Si tu veux apprendre, la première chose est de lire ce qui est écrit, comprendre l’enchaînement des fonctions, en cas d'incompréhension allez lire l'aide proposée sur cette fonction et ensuite soit imprimer le code soit le copier-coller mais RETAPER physiquement les lignes de code, c'est, à mes yeux, la meilleur façon et je fais souvent le rapprochement avec la musique, sans solfège, sans gammes, on ne devient pas instrumentiste sauf quelques rares exceptions mais on ne parle pas des exceptions.

 

Pour ce qui est de ma réponse à côté de la plaque, je confirme et c'est la référence à la ligne de niveau qui m'a induit en erreur

Assurément une routine lisp sera utile dans ce cas, je n'ai pas lu dans le détail la réponse de BonusCad mais j'ai peu de doute quant à son efficacité

Ce que je propose sans lisp mais avec Covadis puisque le forum y est dédié :

Faire un MNT avec la ou les polylignes 3D et lancer la commande des lignes d'iso-épaisseur en répondant un pas de la valeur souhaitée, 10 cm en l'occurrence

 

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Wahou! Retaper des lignes de codes?! déjà pour le code qui est sur ce post, sûr que je passerai pas loin d'une heure juste à le retaper... le temps de vérifier caractère par caractère si je ne me trompe pas, essayer de le mettre en forme, sans parler du sens même de retaper un truc dont on ne reconnait rien... Pinaise, ça me laisse songeur! :blink:

Tiens, ce soir, je vais recopier la pierre de Rosette.. sûr que je parlerai couramment l'égyptien antique après ça p't'etre! :(rires forts):

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Mes propos ne concernent que les gens qui disent vouloir apprendre

Ils sont nombreux à le dire, bien moins nombreux à le faire, et encore moins à le faire réellement.

 

Je vais apprendre à marcher à un enfant: écoute bien et tu sauras marcher :

Il faut mettre un pied devant l'autre et recommencer..., ça y est, tu SAIS marcher

 

Amicalement

 

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Didier, tu me dirais de retaper un petit LISP avec juste une petite fonction dedans, je pourrai le comprendre car en effet, ça serait un bon moyen d'essayer d'apprendre. Là, retaper un LISP d'une page alors que je n'y connais rien, sérieux, ça sert à rien!

Pour reprendre ton exemple d'apprendre à marcher, là, tu essaies de m'apprendre en passant directement au test du saut à cloche-pied!

J'aimerai bien en effet apprendre à lisper (à programmer? pour "preuve", durant ma formation de géomètre, j'ai créé un programme sur calculette Casio permettant de contrôler la bonne fermeture d'un cheminement polygonal. Pratique sur le terrain!), mais pour cela, il faut pouvoir y consacrer régulièrement du temps. Perso entre mes projets bureau, mes réunions de chantier, les éventuels levés, et aussi une vie privée (oui oui! :P ), ben ce que j'ai cru prendre pour acquis lors de mes premiers pas en LISP sont retombés dans le domaine de l'inconnu quand j'ai voulu reprendre mon apprentissage.

 

Amicalement

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

En propos liminaires je parlais de ceux qui veulent apprendre, ensuite si tu n'es que "consommateur" de lisp qui fonctionne sans que tu saches pourquoi et si ça te fait du bien ça ne me fait pas de mal, continue...

 

Je n'ai pas compris ton histoire de cloche-pied, mon image voulait illustrer le fait que savoir comment faire n'est pas savoir faire, bien des gens confondent.

Pour mieux illustrer je vais citer ce proverbe bien connu : Si tu donnes un poisson à un homme il mangera un jour; si tu lui apprends à pêcher, il mangera toujours.

 

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

En propos liminaires

 

Ce site est vraiment une mine d'or que ce soit pour la mise en commun des connaissances techniques et logiciels ou plus simplement pour la connaissance de la langue française.

 

Merci !smile.gif

COME

 

La vie sans musique est tout simplement une erreur, une fatigue, un exil. »

Friedrich Nietzsche

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é