g_barthe Posté(e) le 30 septembre 2008 Posté(e) le 30 septembre 2008 Bonsoir, Je reviens sur un sujet déjà évoqué mais où la réponse ne correspond pas à mon cas. En gros je crée une polyligne avec les points saisis par l'utilisateur. Ensuite je crée une région sur cette polyligne et je veux récupérer le centroid de la région. Et le pb est que une fois la région créé c'est un variant et la récup du centroid se fait sur un acadregion je sais plus quoi. Donc là il faut que je demande à l'utilisateur de choisir la région qu'il vient de faire. Le but est de sauter l'étape où l'utilisateur rechoisi sa région. Actuellement je fais cela : ' Dessin de la polyligne Set polyObj = ThisDrawing.ModelSpace.AddPolyline(vertices) polyObj.Closed = True ' cloture de la polyligne 'création de la région Set region_element(0) = polyObj region = ThisDrawing.ModelSpace.AddRegion(region_element) ' Choix de la région pour en calculer le centre ThisDrawing.Utility.GetEntity boxObj, basePnt, "Sélectionnez la région SVP" ' Le point de base du texte est le centre de la region Centroid = boxObj.Centroid returnPnt(0) = Centroid(0): returnPnt(1) = Centroid(1): returnPnt(2) = 0 Quelqu'un aurait-il une idée ? Merci à vous. PS : la seule idée qui me vient mais qui n'est pas la plus simple est de dessiner un Acad3DSolid à la place de la polyligne. Mais ça me parait compliqué comme truc. Vous voulez parler de génie climatique et poser vos questions alors venez par ici : http://le-genie-climatique.positifforum.com Les loisirs créatifs vous tentent : http://pausebroderie.fr
nazemrap Posté(e) le 30 septembre 2008 Posté(e) le 30 septembre 2008 Bonsoir, je ne sais pas si cela répond à ton questionnement.Voici quelque chose qui récupère la région, enfin me semble-t-il.En utilisant la base de ton code Dim points(0 To 8) As Double Dim polyobj As AcadPolyline Dim region_element(0) As AcadEntity Dim region As Variant Dim reg As AcadRegion Dim centroid As Variant Dim returnPnt(0 To 2) As Double Public Sub aa() ' Define the 2D polyline points points(0) = 1: points(1) = 1: points(2) = 0 points(3) = 1: points(4) = 2: points(5) = 0 points(6) = 2: points(7) = 2: points(8) = 0 ' Dessin de la polyligne Set polyobj = ThisDrawing.ModelSpace.AddPolyline(points) polyobj.Closed = True ' cloture de la polyligne 'création de la région Set region_element(0) = polyobj region = ThisDrawing.ModelSpace.AddRegion(region_element) Set reg = region(0) ' Le point de base du texte est le centre de la region centroid = reg.centroid returnPnt(0) = centroid(0): returnPnt(1) = centroid(1): returnPnt(2) = 0 MsgBox returnPnt(0) MsgBox returnPnt(1) MsgBox returnPnt(2) End Sub
g_barthe Posté(e) le 30 septembre 2008 Auteur Posté(e) le 30 septembre 2008 Salut, Ouh je sens que c'est sioux là. Mais de tête sans avoir tester c'est un truc qui me plait. Je teste demain. Merci encore affaire à suivre. Vous voulez parler de génie climatique et poser vos questions alors venez par ici : http://le-genie-climatique.positifforum.com Les loisirs créatifs vous tentent : http://pausebroderie.fr
g_barthe Posté(e) le 1 octobre 2008 Auteur Posté(e) le 1 octobre 2008 Ca marche !!!!! Impec merci encore. Vous voulez parler de génie climatique et poser vos questions alors venez par ici : http://le-genie-climatique.positifforum.com Les loisirs créatifs vous tentent : http://pausebroderie.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