Aller au contenu

Overrule sur GetGripPoints


Messages recommandés

Bonjour,

 

En mettant au point le plug-in spécifié sur ce sujet, je me retrouve face à un problème que je ne parviens pas à contourner.

J'utilise les objets MPolygone dont je souhaite redéfinir le grip tellement ceux de base d'AutoCAD sont impossibles à gérer.

D'après ce que j'ai compris, il y a 2 fonctions GetGripPoints, l'une ne contient qu'une liste de points , donc tous les grips sont identiques et carrés de base. L'autre fonction permet de spécifier des GripData avec leur propre worlddraw pour leur donner l'apparence que l'on souhaite. Sur les MPolygones, seule la 1ère fonction est implémentée, car quand j'essaie d'appeler l'autre base.GetGripPoints(avec les grip data) j'obtiens un message d'erreur eNotYetImplemented. Je pense que c'est pour cela que tous les grips sont carrés.

C'est donc cette seconde méthode que je surcharge en overrule :

Dans le GetGripPoints le 1er paramètre reçu c'est une entité et c'est là que le problème se pose.

Sous 2013 à 2016, l'entité est de type MPolygon alors que sous 2010 à 2012 je reçois une entité de type "ImpEntity" que je ne peux pas caster en MPolygon (j'ai le même problème si j'essaie de récupérer l'objet dans une transaction avec un GetObject).

D'après ce que j'ai lu et ce que j'ai pu comprendre, il semblerait que l'objet est mal exposé en .Net (la DLL qui gère les polygones AcMPolygonMgd.DLL semble mal foutue).

Est-ce que c'est possible qu'il y ait un souci dans la programmation par Autodesk de cet objet MPolygon? Ou bien c'est moi qui suis complètement à côté de la plaque?

Y a-t-il moyen de remonter à l'entité MPolygon à partir d'une ImpEntity?

 

J'espère avoir été clair et merci pour toutes infos.

Je joins un fichier contenant différent type de MPolygone

 

Olivier

MPOLYGON2.zip

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Bonjour,

 

Pour le moment, j'ai laissé tomber la compilation sous 2012, mais je rencontre un autre problème que j'ai posté aussi ici

 

Je voudrais faire apparaître un menu contextuel sur certains grips pour : ajouter un sommet / supprimer un sommet.

D'après les infos que j'ai pu trouver il s'agit d'implémenter une classe dérivant d'un MultiModesGripPE

Je dispose de 3 ActionType pour gérer 3 types d’événement sur le menu contextuel:

ActionType:Immediate => exécute 1 fois le moveGripPointsAt

ActionType:Command => exécute une commande externe

ActionTypeDragOn => exécute le moveGripPointsAt et le drag, c'est cette option que je voudrais utiliser pour la fonction d'ajout de sommet.

Le problème c'est qu'avec les 2 premier paramètres, le menu contextuel apparaît alors qu'avec le paramétrage DragOn, aucun menu contextuel n'apparaît à côté de mon grip, donc je ne passe jamais dans le moveGripPointsAt

J'ai testé sur 2014 et 2015 en MAP 3D et AutoCAD classique, rien à faire, ça ne fonctionne pas.

 

Est-ce que quelqu'un a déjà implémenté cette fonction avec succès? Merci pour toutes infos.

 

Olivier

Lien vers le commentaire
Partager sur d’autres sites

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é