GEGEMATIC Posté(e) le 13 octobre 2015 Posté(e) le 13 octobre 2015 Salut à tous,je récupérer un point3d dans un variable,quand j'inspecte cette variable, j'ai bien ce que j'y ai mis,mais quand je l’inspecte, j'ai coordinate en rouge,avec ce message:"Pour évaluer une propriété indexée, cette dernière doit être qualifiée et l'utilisateur doit fournir les arguments de manière explicite."du coup je n'arrive pas à lire les coordonnées individuellement. Tous les exemples que j'ai trouvé créent un pt de toute pièce, et ne mettent pas un pt dans une variable pt.ce qui me fait rager, c'est que j'ai déjà eu ce message sous access, et que je ne me souvient pas de ce que j'avais fait ... Dim pt As Point3d = oODRecord.Item(fieldIndex).Point 'la ligne suivante crée une rerreur Dim x As double = pt.X 'ou alors Dim pt2 As New Point3d(oODRecord.Item(fieldIndex).Point.X, oODRecord.Item(fieldIndex).Point.Y, oODRecord.Item(fieldIndex).Point.Z) 'la ligne suivante crée aussi une rerreur Dim y As double = pt2.Y 'et enfin Dim center As New Point3d(9.0, 3.0, 0.0) 'ça marche nickel Dim Z As Object = center.Z j'avoue que je ne comprends pasGégé ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
(gile) Posté(e) le 13 octobre 2015 Posté(e) le 13 octobre 2015 Salut, C'est quoi comme type d'objet : oODRecord ?Est-ce que c'est l'intellisense de VS qui te propose la propriété Point pour : oODRecord.Item(fieldIndex) ?Si oui, quel est le type de l'objet retourné par : oODRecord.Item(fieldIndex).Point ? Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
GEGEMATIC Posté(e) le 13 octobre 2015 Auteur Posté(e) le 13 octobre 2015 salut Gile et merci de te pancger sur le problème: Dim oODRecord As Autodesk.Gis.Map.ObjectData.Record c'est un enregistreement de données d'objet FieldValue = oODRecord.Item(fieldIndex).Point point est bien proposé par intellisense, et la variable contient bien les valeur, l'objet est de type point3d tel que défini dans:Autodesk.AutoCAD.Geometry sauf qu'un point lu dans un enregistrement ne semble pas être pareil qu'un point créé de toute pièces Gégé ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
(gile) Posté(e) le 13 octobre 2015 Posté(e) le 13 octobre 2015 As-tu essayé un cast explicite ?Dim pt As Point3d = DirectCast(oODRecord.Item(fieldIndex).Point, Point3d)Si j'ai bien compris (je ne connais pas MAP ni son API), Autodesk.Gis.Map.ObjectData.Record est un objet COM et les objets COM ne sont pas toujours aussi fortement typés que les objets .NET (e.g. le 'type variant' vu comme 'Object' en .NET).De plus, VB, quand l'option 'Strict' est 'Off' peut faire de la liaison tardive implicite masquant ainsi les typages appriximatifs... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
GEGEMATIC Posté(e) le 14 octobre 2015 Auteur Posté(e) le 14 octobre 2015 salut, pour le DirectCast, il me dit que ce n'est plus possible de l'utiliser pour convertir un objet d'un type point3d vers point3d ce que j'ai ommis de dire, c'est le message de visualstudio, lorsque j'essaye d'acceder à pt était:pt n'est pas initialisé, il est peut être inaccessible en raison de son niveau de protection, ça t'aurai certainement permis de comprendre le problème. J'ai fini par comprendre mon erreur : pt n'était pas déclaré pour tous les chemins du code, le dim était mal placé,mais ce qui m'a perturbé, c'est ce message lors du survol de la variable, qui lui est toujours présent sur coordinate(DirectCast(strVal,Autodesk.AutoCAD.Geometry.Point3d).Coordinate) : "Pour évaluer une propriété indexée, cette dernière doit être qualifiée et l'utilisateur doit fournir les arguments de manière explicite." je ne comprends toujours pas ce message, mais ça n’empêche pas mon programme de marcher ! Gégé ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
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