Aller au contenu

Messages recommandés

  • 1 mois après...
Posté(e)

Bonjour (gile)

 

J'ai intégré gc-vplayerremoveall et j'ai une 'Erreur: eNotApplicable' dès que je tente de l'appliquer sur la présentation (la Viewport #0), peu importe que le calque ait ou pas des overrides pour la vue.

 

Pas d'erreur avec les fenêtres normales... A noter qu'elle renvoie T même si le calque n'avait pas d'overrides (donc mm si elle ne s'applique pas) mais c'est pas grave..

 

Sinon je n'ai pas eu de nouvelle erreur avec gc-vplayeroverride, super !

  • 3 semaines après...
Posté(e)

Bonjour (gile)

 

Je me permets de revenir à la charge parce qu'un autre problème empêche d'utiliser gc-vplayerremoveall (du moins dans une boucle) : le regen intégré...

 

Avec le problème des VPort0 ça la rend difficilement utilisable, et tel quel on ne peut pas toujours supprimer les overrides affectées avec gc-vplayeroverride

Posté(e)

Essaye de nettoyer le cache de ton navigateur avant de refaire le téléchargement.

 

Si le problème persiste, peut-être pourrais-tu poster le code qui appelle la fonction afin que je voie mieux le contexte dans lequel tu as des problèmes.

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

Posté(e)
Essaye de nettoyer le cache de ton navigateur avant de refaire le téléchargement.

 

C'est fait, mais j'ai bien un fichier différent (légèrement + petit) ..

 

 

Le code est encore trop en vrac, mais je peux reproduire l'erreur de la VP#0 ...

 

Il faut passer en Présentation, et la VP0 est la vue active (la vue "Présentation"), je la récupère comme ça : (vlax-vla-object->ename (vla-get-ActivePViewport (vla-get-ActiveDocument (vlax-get-acad-object))))

 

Ca marche très bien avec gc-vplayeroverride : le code suivant applique une override "Rouge" au calque "0". Soit à la VP#0 si tu es en espace Papier, soit à la VP#1 si tu as double-cliqué dedans (c'est ce que je cherche à obtenir, d'où ce code vla) ..

(gc-vplayeroverride (vlax-vla-object->ename (vla-get-ActivePViewport (vla-get-ActiveDocument (vlax-get-acad-object)))) "0" 1)

Pour effacer l'override j'ai une erreur avec le même code, mais uniquement si je suis en espace Papier ..

(gc-vplayerremoveall (vlax-vla-object->ename (vla-get-ActivePViewport (vla-get-ActiveDocument (vlax-get-acad-object)))) "0")

 

 

Quant au Regen j'ai intégré la fonction dans une boucle de calques et j'ai bien un Régénération du modèle déclenché pour chaque calque

Posté(e)

Je viens de tester les deux expressions que tu donnes avec la version en téléchargement avec A2011 et A2012.

Dans les deux cas, l'expression retourne T et faut faire un regen pour que l'affichage se mette à jour...

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

Posté(e)

Je viens de tester les deux expressions que tu donnes avec la version en téléchargement avec A2011 et A2012.

 

Alors ça doit venir de la 2010 (j'ai un Erreur: eNotApplicable)

 

et faut faire un regen pour que l'affichage se mette à jour...

C'est comme pour l'autre fonction ..

En fait j'essaye de les piloter par une interface OpenDCL, et quand je valide ça traite les calques à la suite, d'où l'ennui avec le Regen ..

 

Voilà à quoi ça ressemble :

 

http://img15.hostingpics.net/thumbs/mini_955170overrides.gif

Posté(e)

Je viens de faire un test avec A2010 et tout fonctionne comme attendu, aussi bien avec gc-vplayeroverride (le calque "0" passe en rouge et il faut régénérer pour que l'affichage en rende compte) qu'avec gc-vplayerremoveall (le calque "0" revient en noir et il faut régénérer pour que l'affichage en rende compte).

 

Assure toi de bien avoir la dernière version et de bien charger celle là dans AutoCAD.

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

Posté(e)

C'est curieux car je l'ai aussi testé dans un autre 2010 (32 bits) et j'avais aussi cette erreur.

Le déroulement est bien ce que tu décris mais j'ai une erreur uniquement si je suis en espace Papier (pas dans une vue je précise).

 

et il faut régénérer pour que l'affichage en rende compte

 

Oui il faut régénérer, mais on peut aussi vouloir appliquer gc-vplayerremoveall à plusieurs calques à la suite et préférer régénérer à la fin (c'est le cas de l'interface en exemple), plutôt que déclencher autant de Regen qu'il y a de calques.

 

---------------------------------

Je réessaierai sur d'autres postes, sinon voilà l'erreur (pas toujours affichée) que j'ai avec la dernière version :

 

Autodesk.AutoCAD.Runtime.Exception: eNotApplicable

à Autodesk.AutoCAD.Runtime.Interop.ThrowExceptionForErrorStatus(Int32

errorStatus)

à AcMgUserInteraction.{ctor}(AcMgUserInteraction* , AcApDocument* pDoc,

Boolean prompting)

à Autodesk.AutoCAD.EditorInput.Editor.WriteMessage(String message, Object[]

parameter)

à LispVpLayer.LispErrorMsg.Message(String msg)

à LispVpLayer.VpLayer.VpLayerRemoveAll(ResultBuffer resbuf)

à Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo mi, Object

commandObject, Boolean bLispFunction)

à

Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo

mi, Object commandObject, Boolean bLispFunction)

à Autodesk.AutoCAD.Runtime.PerDocumentCommandClass.Invoke(MethodInfo mi,

Boolean bLispFunction)

à Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.InvokeLisp(); erreur:

Demande ADS erronée

Posté(e)

Oui, j'ai bien compris que le problème avait lieu dans la fenêtre de présentation (CVPORT = 1).

Oui, j'ai bien compris que tu souhaitais que la fonction gc-vplayerremoveall ne s'occupe pas de régénération (comme tu l'avais demandé pour gc-vplayeroverride) pacre que tu l'utilises dans une boucle.

 

C'est exactement dans ce ce sens que j'ai fait la modification hier (c'était la méthode utilisée pour régénérer qui n'était pas supportée par la fenêtre de présentation, je l'ai supprimée).

C'est exactement dans ce cadre que j'ai fait mes tests : fenêtre de présentation active et calque "0", fenêtre de présentation active et boucle sur tous les calques, boucle sur toutes les fenêtres (présentation + flottantes) et sur tous les calques. Dans tous les cas, j'ai dû faire un REGEN explicitement après l'exécution des LISP.

 

Je persiste donc à penser que tu n'utilises pas la dernière version (postée hier). D'ailleurs, dans l'aide de cette version, pour la fonction gc-vplayerremoveall, il est clairement précisé qu'une régénération est nécessaire.

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

Posté(e)

D'accord merci :)

 

Je viens de re-télécharger et ça marche impeccable.

 

Pourtant hier j'avais bien vidé la mémoire cache du navigateur (2 fois), remplacé le bon fichier .. j'ai même redémarré l'ordi.

Et effectivement hier le bouton Débloquer (dans les propriétés) des fichiers téléchargés n'était pas disponible .. Je n'ai pas tout compris.

 

Merci encore

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é