Aller au contenu

Creer un Arc tangent à deux Elements et qui passe par un point donne


lecrabe

Messages recommandés

Coucou

 

En réponse au message #46

Je n'ai pas dit qu'il exigeaient MAP, il le conseille tellement fortement que pour ne pas l'avoir et avoir un AutoCAD "normal" il faut en faire la demande expresse, ça m'est arrivé de le vouloir et de le leur faire comprendre et ils ont trouvé des arguments (fallacieux?) comme quoi si j'étais pas certain d'être sûr il valait mieux garder l'offre avec MAP.

Ils ont aggravé le monopole et comme ils sont "indépendants" ils doivent y trouver leur intérêt, grand bien leur fasse.

Toutefois il est vrai qu'une offre plurielle de logiciel de base pour faire tourner les applicatifs serait un "plus" qui ferait tendre vers moins de monopole en élargissant les offres (et donc la concurrence)

 

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Et moi je continue à ma vitesse de gastéropode, je ne peux pas y travailler tous les jours et à chaque fois c'est 1/4 d'heure alors je mets plus de temps à me souvenir où j'en étais qu'à avancer, on n'a pas une vie simple au loin...

 

 

48km.png

Lien vers le commentaire
Partager sur d’autres sites

Petite amélioration, ARCTAN fonctionne sur le plan XY du SCU courant quel que soit celui-ci.

Le lien réponse #43 est mis à jour (désinstaller ArcExtension avant d'installer la nouvelle version).

 

MERCI !

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

Salut,

 

Pendant ce temps là, j'ai amélioré mon petit bout de code (tordu, je vous l'accorde) en lisp et avec l'aide des commandes autocad.

(defun c:ttp ( / e1 e2 pt el ctr temp_pt1 temp_pt2)
(while (not (setq e1 (nentsel "\n1ère entité de tangeance : "))))
(while (not (setq e2 (nentsel "\n2nde entité de tangeance : "))))
(if (angle (car e1) (car e2))
	(progn
		(while (not (setq pt (getpoint "\nPoint d'intersection : "))))
		(setvar 'cmdecho 0)
		(command "_.circle" "_3P" "_tan" (cadr e1) "_tan" (cadr e2) pt)
		(setq
			el (entlast)
			ctr (cdr (assoc 10 (entget el)))
		)
		(command 
			"_.line" ctr (setq temp_pt1 (osnap (cadr e1) "_per")) ""
			"_.line" ctr (setq temp_pt2 (osnap (cadr e2) "_per")) ""
		)
		(while el
			(entdel el)
			(setq el (entnext el))
		)
		(command "_.arc" temp_pt1 temp_pt2 pt)
		(setvar 'cmdecho 1)
	)
	(princ "\nEntités parallèles.")
)
(princ)
)

J'aimerais bien trouver les deux intersections tangeantes de l'arc autrement qu'en dessinant des lignes avec accroche perpendiculaire puis les supprimer, mais je ne sais pas comment faire (en lisp, hein). La fonction osnap demande un point en amont pour faire une perpendiculaire.

Bonnne journée.

 

"Chacun compte pour un, et nul ne compte pour plus d'un."

Lien vers le commentaire
Partager sur d’autres sites

J'aimerais bien trouver les deux intersections tangeantes de l'arc autrement qu'en dessinant des lignes avec accroche perpendiculaire puis les supprimer, mais je ne sais pas comment faire (en lisp, hein). La fonction osnap demande un point en amont pour faire une perpendiculaire.

Bonnne journée.

 

la fonction vlax-curve-getClosestPointTo pourrait être utile ? Mais ce n'est pas du lisp pur, alors je ne sais pas si ça conviendra.

 

aide autocad

 

Amicalement

Vincent

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Pour l'instant j'en suis là :

go3d.gif

Je ne dessine rien en temporaire, les points sont calculés mais je dois peaufiner...

Je restitue des cercles mais c'est pour l'exemple, les arcs c'est rien à faire, je voulais vérifier l'intégrité des calculs

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

pour ma part, je suis parti sur une solution très "graphique". Contrairement à celle de Didier, elle utilise une foule de constructions temporaires.

 

Cela m'a permis de découvrir la construction de Wallis

 

Amicalement

Vincent

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Eh oui ! mes "bases" de géométrie sont utiles pour ce genre de réponse

Je connais ce site, très bien fait, et "dans le temps" nos professeurs nous faisaient réaliser tous ces montages au compas,

De nos jours le calcul l'emporte sur la construction graphique mais si tu n'as pas intégré cette base graphique il te manquera quelque chose.

Aujourd'hui ça semble mort mais demain je vais peut-être terminer le code.

 

Amicalement

 

 

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

J'utilise aussi ces méthodes de résolution graphique mais avec les objets "non graphiques" de l'espace de nom Autodesk.AutoCAD.Geometry de l'API .NET.

Il s'agit d'objets purement géométriques (pas de représentation dans AutoCAD) comme des points des vecteurs, des matrices, des segments de droite, des droites, des arcs, etc... Ces objets fournissent de nombreuses propriétés et méthodes qui facilitent grandement les choses.

De plus,comme ces objets existent en 2D ou 3D et qu'ici le problème est en 2D, utiliser les objets 2D allège les calculs.

Dans le code donné à la réponse #45, la méthode Update() de la classe ArcJig est exécutée à chaque déplacement du curseur, cette méthode appelle les méthodes SetAxis() et GetTangentArcs() pour recalculer les arcs tangents en fonction de la position du curseur et mettre à jour l'arc (graphique) affiché dans AutoCAD.

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

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Ouf ! le vendredi est un jour plus calme que les autres dans les contrées où je sévis, on travaille aussi mais on peut lever le pied.

Pour ne pas utiliser d'entités graphiques, en particulier les cercles de construction et en trouver les intersections j'ai écrit une fonction de calcul d'intersection de cercles

Je fonctionne sur des entités LIGNE

Je n'ai pas besoin qu'elle soient jointives à leur intersection

Je n'ai pas filtré le cas de lignes parallèles

Je ne coupe pas les lignes une fois l'arc en place

Ce n'est pas "dynamique" (visuel)

Et autres manquements sans doute...

Voici donc ma proposition dans le message qui suit car ma "mise en forme" nuit au formatage du code

 

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

  • 4 ans aprè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 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é