Aller au contenu

souci avec les ARCS en 3D


Messages recommandés

Posté(e)

Bonjour

 

je vais essayer d'être explicite car mon souci

requiert pas mal de renseignements liminaires.

 

j'ai dessiné dans le SCG des segments de droites (des lignes)

lorsque je demande les coordonnées d'un point des ces lignes

en utilisant l'accrochage PROCHE, tout est correct.

 

j'ai dessiné dans un SCU particulier des arcs

ces arcs représentent des lignes de coupe d'un tore qui suit les lignes précédentes.

vous suivez ou je vous ai perdus ?

 

il m'est impossible d'obtenir les coordonnées

d'un point quelconque de ces arcs en étant dans le SCG.

à aucun moment le PROCHE ne se déclenche en survolant ces entités

ce sont bien ces arcs,

mais j'en ai besoin car je cherche les variations en Z

dès que je les transforme en polyligne, le PROCHE fonctionne

 

++++++++++++++++++++++++++++++++++++++++++++++

question

pour ces arcs refusent le PROCHE ?

++++++++++++++++++++++++++++++++++++++++++++++

 

je colle une image en iso et en plan.

 

http://images.imagehotel.net/ylgth30h2u.png

 

amicalement

Posté(e)

Salut,

 

Effectivement les arc ne prennent pas l'accrochage PROCHE si le SCU courant n'est pas parallèle au SCU de construction de l'arc.

 

Tu peux essayer ce petit LISP vite fait :

(defun c:didier	(/ *error* osm pt)

 (defun *error* (msg)
   (and msg
 (/= msg "Fonction annulée")
 (princ (strcat ("\Erreur: " msg)))
   )
   (command "_.ucs" "_world")
   (setvar 'osmode osm)
   (princ)
 )

 (setq osm (getvar 'osmode))
 (setvar 'osmode 512)
 (command "_.ucs" "_object" pause)
 (while (setq pt (getpoint))
   (princ (strcat "\n" (trans pt 1 0)))
 )
 (*error* nil)
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

++++++++++++++++++++++++++++++++++++++++++++++

question

pour ces arcs refusent le PROCHE ?

++++++++++++++++++++++++++++++++++++++++++++++

 

parce que les cercles aussi :)

 

Ma vision intime est que ces entités ne sont définies que par des rayons et qu'il leur manquerait une sorte d'existence géométrique.

A tester par curiosité sur une polyligne "oldstyle"

 

Philosophie d'1 heure du mat' !

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Coucou

 

Tramber :

A tester par curiosité sur une polyligne "oldstyle"

old ou new, dès que l'objet est transformé en Polyligne

le curseur trouve un "proche" de l'objet

même en vue de dessus (purement verticale)

 

ma question était pourquoi avec les arcs c'était non ?

 

on pourrait répondre que ce n'est pas dans ses "cordes"

et pourtant on en connaît un "rayon",

c'est un coup à prendre la "tangente"...

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

(Gile)

merci d'avoir pris le temps de taper ce petit lisp

mais il ne fonctionne pas,

le scu se met bien dans celui de l'objet,

le "proche" s'accroche bien sur l'objet,

mais il n'y a aucun affichage de Z en déplaçant le curseur

le z reste désespérément à Zéro

pendant que les X et Y défilent.

ne le reprend pas, c'est déjà gentil de ta part,

j'ai passé ces arcs en polyligne et ça fonctionne.

merci aussi pour tes explications sur les SCU particuliers sur ces arcs

 

amicalement

Posté(e)

Il manque juste un (VL-PRINC-TO-STRING (trans pt 1 0)) au lieu de (trans pt 1 0) et ca marche bien ! Tu regardais les renseignements de la barre d'état. Si c'est là que tu cherches à les avoir, il faut glisser un MODEMACRO.... dans une boucle GRREAD.

genre (setvar "modemacro" (VL-PRINC-TO-STRING (trans pt 1 0)) )

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Salut,

 

Je ne peux expliquer pourquoi l'accrochage ne fonctionne pas sur les arcs ou les cercle quand il fonctionne sur les polylignes. Tous ces objets dérivent du type Curve et vlax-curve-getClosestPointTo fonctionne bien pour tous...

 

Le LISP fonctionne en l'état (pas besoin de vl-princ-to-string), il faut cliquer pour spécifier des points sur l'arc et les coordonnées SCG du point cliqué s'affichent dans la barre de commande.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

coucou

 

(Gile), encore une fois merci,

mais encore une fois non, le lisp ne fonctionne pas

je pense que c'est dans la définition du SCU des rcs qu'il y a un souci

car il me met une icône de scu avec le Y vers le haut, et les Z vers la droite :blink:

 

je te redis de laisser tomber, c'est OK avec les polylignes.

 

Amicalement

Posté(e)

Les amis !

 

Je maintiens :

(defun c:didier (/ *error* osm pt)
 (defun *error* (msg)    (and msg         (/= msg "Fonction annulée")         (princ (strcat ("\Erreur: " msg)))    )
   (command "_.ucs" "_world")
   (setvar 'osmode osm)    (princ)  )
 (setq osm (getvar 'osmode))  (setvar 'osmode 512)
 (command "_.ucs" "_object" pause)
 (while (setq pt (getpoint))
   (princ (strcat "\n"(VL-PRINC-TO-STRING (trans pt 1 0)))) )  (*error* nil))

 

Fonctionne très bien. Y a pas de raison !

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Coucou

 

excuse-moi, Tramber

mais je répète que c'est peut-être un souci de scu à la création des arcs

car je maintiens, moi aussi, que le lisp ne fonctionne pas.

ni celui de (Gile) ni le tien.

je parle dans ma configuration bien sûr.

 

merci de vous entêter, mais je n'ai pas besoin de ce lisp

puisque je disais que transformés en polyligne tout fonctionne correctement.

 

ma question ne portait pas sur l'écriture d'un lisp

mais pour essayer de comprendre pourquoi le proche

ne s'accrochait pas sur les arcs en 3D vus de dessus .

 

amicalement

Posté(e)

car je maintiens, moi aussi, que le lisp ne fonctionne pas.

ni celui de (Gile) ni le tien.

 

ah ouais ? :(

Entre nous de toutes façons, on sait se construire des macros.

 

Il ne reste qu'un mystère : pourquoi en effet il manque des accrochages (perpendiculaire, perpendiculaires différé, proche, etc,...) uniquement sur les arcs et cercles.... ? faut demander à Autodesk...

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Je me suis amusé un peu et j'ai joué avec l'accrochage forcé EXTEnsion. Celui-là fonctionne et c'est bien 3D. On peut spécifier une longueur et créer facilement une corde dans la 3D.

 

extearc.png

 

En utilisant cet accorchage, j'ai choisi ici d'implanter une corde à X du bout des arcs, et ce en 3D dans le SCG avec un arc bien défini dans un autre SCU.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Encore moi.

Pour la lecture du point avec MODEMACRO (qui afficherait le point en bas à gauche de la fenêtre AutoCAD), je suggère GRREAD en réponse n°5. Mais c'est une idiotie parfaite car, justement, GRREAD empêche l'utilisation des accrobjs ! (les lispeurs savent qu'il y a des moyens de contourner et (Gile) a aussi bossé sur des accrobjs codés en dur).

 

Quel âne je suis.

 

N'empêche que c'est une voie. J'ai essayé de glisser un modemacro dans la boucle de la routine c:didier mais c'est sans succès.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

coucou

 

bon, on a fait le tour de la question

et on s'accorde sur :

 

un arc dessiné dans un scu exotique ne supporte

ni l'accrochage proche ni perpendiculaire

par contre on sait en trouver le centre

 

cet arc transformé en polyligne,

supporte l'accrochage proche mais toujours pas perpendiculaire

en plus elle perd les renseignements de rayon.

 

ben, voila, monsieur AutoDesk,

tu ne savais pas qui faire ce week-end, maintenant tu sais...

 

amicalement

Posté(e)

Salut,

 

Un autre LISP qui utilise grread et vlax-curve-getClosestPointToProjection.

Ceci montre bien que l'accrochage proche (ou perpendiculaire) pourrait très bien marcher si chez Autodesk on s'occupait de faire fonctionner correctement ce qui qui existe plutôt que d'inventer des gadgets inutiles ou aberrants comme la nouvelle aide...

 

(defun c:NEA (/ *error* loop gr text glyph pt size norm)
 (vl-load-com)
 (defun *error* (msg)
   (and msg
 (/= msg "Fonction annulée")
 (princ (strcat "Erreur: " msg))
   )
   (and text (entdel text))
(and glyph (entdel glyph))
   (princ)
 )

 (setq curve (car (entsel "\nSélectionnez une courbe: ")))
 (if (not (vl-catch-all-error-p (vl-catch-all-apply 'vlax-curve-getStartParam (list curve))))
   (progn
     (setq loop T)
     (while (and (setq gr (grread T 14 0)) loop)
(and text (entdel text) (setq text nil))
(and glyph (entdel glyph) (setq glyph nil))
(if (= (car gr) 5)
  (progn
    (setq norm (trans '(0 0 1) 2 0 t)
	  pt   (vlax-curve-getClosestPointToProjection curve (trans (cadr gr) 1 0) norm)
	  size (/ (getvar "VIEWSIZE") 80.)
	  text (entmakex
		 (list
		   '(0 . "TEXT")
		   '(62 . 7)
		   (cons 1 (vl-princ-to-string pt))
		   (cons 10 (polar (setq pt (trans pt 0 norm)) (/ pi 4) size))
		   (cons 40 size)
		   (cons 7 (getvar "TEXTSTYLE"))
		   (cons 50 (- (getvar "VIEWTWIST")))
		   (cons 210 norm)
		 )
	       )
	  size (* size 0.8)
	  glyph (entmakex
		  (list
		    '(0 . "LWPOLYLINE")
		    '(100 . "AcDbEntity")
		    '(100 . "AcDbPolyline")
		    '(90 . 4)
		    '(70 . 1)
		    '(62 . 1)
		    (cons 43 (/ size 10))
		    (cons 10 (polar pt (* pi 0.25) size))
		    (cons 10 (polar pt (* pi 0.75) size))
		    (cons 10 (polar pt (* pi 1.75) size))
		    (cons 10 (polar pt (* pi 1.25) size))
		    (cons 210 norm)
		    )
		  )
		    
		    	
    )
  )
  (setq loop nil)
)
     )
   )
 )
 (*error* nil)
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)
comme la nouvelle aide...

 

Aberrant comme tu dis ! C'est au delà de la connerie. Ils préparent un certain futur ?!

 

Didier ! je suis s'accord avec ton résumé. Disons que je pense tout de même que le perpendiculaire fonctionne mais je vois des cas avec et des cas sans. Mais bon, à part le perpendiculaire différé, c'est quand même plutôt un accrobj de 2nd point !

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

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

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é