CADxp: Repérer une altitude sur une poly 3D - CADxp

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Repérer une altitude sur une poly 3D

#1 L'utilisateur est hors-ligne   Demixav 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 764
  • Inscrit(e) : 28-mars 12
  • LocationLa pampa du Gard

Posté 20 avril 2016 - 16:08

Bonjour,

Il me semblait qu'il y avait une commande afin de repérer une altitude donnée sur une poly 3D... mais je ne la trouve plus... j'ai rêvé ou pas?
Ou une astuce ?...

Merci!
Xav
AutoCad Map 3D 2011 - Covadis v16.0d
Windows 7 - 64b
0

#2 L'utilisateur est hors-ligne   Tramber 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8450
  • Inscrit(e) : 29-mars 03
  • LocationStrasbourg

Posté 20 avril 2016 - 16:16

Commande ID ?
Image IPB

Bureau d'études dessin.
Spécialiste Escaliers
Développement - Formation

./__\.
(.°=°.)
0

#3 L'utilisateur est hors-ligne   Demixav 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 764
  • Inscrit(e) : 28-mars 12
  • LocationLa pampa du Gard

Posté 20 avril 2016 - 16:55

Salut tramber...

J'ai dû mal m'exprimer!

Je souhaite avoir un repère (un bloc, un point... peu importe) qui s'insère sur une poly 3D à une altitude que je saisirai!

Par exemple, j'ai une poly 3D faisant les "montagnes russes" avec une 50aine de sommets, alti mini 50m, alti maxi 150m! comment repérer tous les points sur cette poly à l'altitude 123.45m ?
AutoCad Map 3D 2011 - Covadis v16.0d
Windows 7 - 64b
0

#4 L'utilisateur est hors-ligne   Olivier Eckmann 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1268
  • Inscrit(e) : 29-décembre 11
  • LocationLongjumeau (91)

Posté 20 avril 2016 - 20:03

Bonjour,

la réponse dans le sujet : ICI message #16 plus particulièrement


Olivier
0

#5 L'utilisateur est hors-ligne   Demixav 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 764
  • Inscrit(e) : 28-mars 12
  • LocationLa pampa du Gard

Posté 21 avril 2016 - 08:12

Bonjour Olivier,

Merci pour ta réponse... et ton LISP! Nickel!

Bonne journée!
Xav
AutoCad Map 3D 2011 - Covadis v16.0d
Windows 7 - 64b
0

#6 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4669
  • Inscrit(e) : 20-juin 03

Posté 21 avril 2016 - 09:12

Un peu différent, il y avait aussi ceci

Attention au copier-coller car à l'époque le symbole < était mal interprété par le forum...
Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
0

#7 L'utilisateur est hors-ligne   Demixav 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 764
  • Inscrit(e) : 28-mars 12
  • LocationLa pampa du Gard

Posté 21 avril 2016 - 12:49

Bonjour BonusCad,

Merci pour ton intervention supplémentaire!

Ton LISP m'intéresse à première vue, mais je n'arrive pas à le faire fonctionner!
Quand je le lance, directement il y a une "boucle" qui se met en route je pense, et j'ai le message "Ce n'est pas une polyligne 3D!" qui n’arrête pas de défiler...
Je pense que ca vient du symbole < comme tu le dis dans ton message... mais étant une bille en slip, je ne sais que faire pour changer ça!

Help !!! :/

Merci!
Xav
AutoCad Map 3D 2011 - Covadis v16.0d
Windows 7 - 64b
0

#8 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4669
  • Inscrit(e) : 20-juin 03

Posté 21 avril 2016 - 13:21

Je reposte le code (en plus, il a peut être changé depuis le temps)
Ca devrait aller mieux!

(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 "\nSélectionnez 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)
)

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

#9 L'utilisateur est hors-ligne   Demixav 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 764
  • Inscrit(e) : 28-mars 12
  • LocationLa pampa du Gard

Posté 21 avril 2016 - 13:43

Nickel BonusCad !!! :)

Merci à toi et aux autres lispeur encore une fois pour vos partages!
Xav
AutoCad Map 3D 2011 - Covadis v16.0d
Windows 7 - 64b
0

#10 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8544
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 21 avril 2016 - 14:21

Hello Bruno

Donc SVP cette routine fait quoi exactement sur une Polyligne 3D ?

Bye, lecrabe
Autodesk Expert Elite Team
0

#11 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4669
  • Inscrit(e) : 20-juin 03

Posté 21 avril 2016 - 15:36

Voir le messagelecrabe, le 21 avril 2016 - 14:21 , dit :

Hello Bruno

Donc SVP cette routine fait quoi exactement sur une Polyligne 3D ?

Bye, lecrabe


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...)
Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
0

#12 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8544
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 21 avril 2016 - 16:24

Hello Bruno

MERCI pour les explications !

Bye, lecrabe
Autodesk Expert Elite Team
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)