Olivier Eckmann Posté(e) le 23 février 2017 Posté(e) le 23 février 2017 Bonjour, j'ai un petit souci en C# avec Intersectwith pour trouver l'intersection d'un ligne et d'une polyligne via ce code:_oLine.IntersectWith(oRefG, Intersect.OnBothOperands, pts, IntPtr.Zero, IntPtr.Zero); En fait ça fonctionne bien sauf quand j'approche d'un sommet de polyligne, car dans ce cas, la fonction me renvoie 2 points d'intersection:- la vraie intersection- la fausse qui correspond à l'intersection virtuelle entre ma ligne et le segment de polyligne suivant (voir schéma http://img11.hostingpics.net/pics/266912IntersectWith.jpg) Je peux m'en sortir en recalculant le GetClosestPoint et en vérifiant si la distance est inférieure à mon epsilon pour savoir si le point est bien sur la polyligne ou pas, mais c'est quand même bizarre. A moins d'utiliser les 2 inPtr des Graphismes, mais là je ne sais pas trop quoi utiliser. Merci pour toute piste me permettant d'avancer. Olivier
Maxence DELANNOY Posté(e) le 24 février 2017 Posté(e) le 24 février 2017 Tiens c'est marrant j'ai eu le même problème hier. Est-ce que par hasard les coordonnées de tes entités sont très grandes (genre 7 chiffres ou plus devant la virgule) ? Si oui, essaie de ramener tes entités à proximité de l'origine du SCG avec une translation, calcule ton intersection, puis rétablit tes entités à leur position de départ. Tu dois évidemment aussi transformer les points d'intersection renvoyés par IntersectWith pour obtenir leurs positions réelles. C'est peut être un problème de stabilité numérique des fonctions géométrique d'AutoCAD. Maxence DELANNOYDéveloppement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAOWIIP - http://wiip.fr
Olivier Eckmann Posté(e) le 24 février 2017 Auteur Posté(e) le 24 février 2017 Effectivement, ce sont les coordonnées RGF93-CC49 qui posent problème. En décalant vers 0,0, plus de souci.Je ne comprends pas pourquoi ce décalage n'est pas fait en interne dans les API d'AutoCAD, ça fait des années qu'on se traîne des galères dues aux grandes coordonnées. Merci Maxence pour cette solution. Olivier
Maxence DELANNOY Posté(e) le 27 février 2017 Posté(e) le 27 février 2017 Je pense que ce n'est pas implémenté directement dans la bibliothèque géométrique pour des raisons d'optimisation. Si c'était fait dans IntersectWith, qui est utilisé par exemple pour l'accrochage aux objets, ça risquerait d'avoir un impact négatif sur les performances d'AutoCAD. Maxence DELANNOYDéveloppement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAOWIIP - http://wiip.fr
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