l56 Posté(e) le 28 mai 2016 Posté(e) le 28 mai 2016 Bonjour, J'aimerai changer de SCU pendant qu'une boite de dialogue (DCL) est ouverte.Est-ce-possible ? Merci à ceux qui savent ...
didier Posté(e) le 28 mai 2016 Posté(e) le 28 mai 2016 Coucou Désolé d'utiliser une réponse récurrente mais :Ta question n'est pas claire et il te faut donc expliciterTu veux changer de SCU certes mais je ne comprends pas ce que tu veux dire par : pendant qu'une boite de dialogue (DCL) est ouverte.Est-ce une DCL ouverte par toi dans une autre fonction programmée ?Est-ce une DCL "native" d'AutoCAD ? Dans le premier cas il faudra agir dans le lisp concernéDans le deuxième cas ce n'est pas possible Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
piergel Posté(e) le 30 mai 2016 Posté(e) le 30 mai 2016 Bonjour, Si tu gères effectivement le lisp ou la boite de dialogue apparaît : avant lancement de la boite de dialogue : - sauvegarde du SCU courant(if (tblsearch "UCS" "$$temp$$") (command "_ucs" "_d" "$$temp$$") ) (command "_ucs" "_s" "$$temp$$") - modification du scu avec la commande SCU et toutes ses options. Exemple :(command "_ucs" "_w") (command "_ucs" "_o" "_non" pt) ; _non=none (pas d'accrochage) (command "_ucs" "_za" "" "_non" ang) ; _non=none (pas d'accrochage) après la boite de dialogue, retour au scu sauvegardé : (command "_ucs" "_r" "$$temp$$") (command "_ucs" "_d" "$$temp$$") Cordialement
Patrick_35 Posté(e) le 30 mai 2016 Posté(e) le 30 mai 2016 Salut Je pense que c'est possible en vlisp tout en ayant une boite de dialogue ouverte.Ca se passe ici(vlax-dump-object (vla-get-usercoordinatesystems (vla-get-activedocument (vlax-get-acad-object))) T) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
l56 Posté(e) le 30 mai 2016 Auteur Posté(e) le 30 mai 2016 Bonjour et merci à vous, Je vais préciser : Je lance un routine en LISP qui ouvre une boite de dialogue qui reste ouverte un moment puis se referme sans l'intervention de l'utilisateur. Pendant qu'elle est ouverte, le programme LISP travaille et fait appel à : (command "_ucs" ...) ce qui, bien sur, fait planter AUTOCAD.Il me semble que Patrick_35 à la solution, mais je ne suis pas assez calé en VLISP pour la comprendre. Patrick, s'il te plait, sans vouloir abuser de ton temps, pourrais-tu développer un peu. Merci.
Patrick_35 Posté(e) le 30 mai 2016 Posté(e) le 30 mai 2016 Quand j'ai fait JAV, j'avais le même problème. Faire défiler les fonctions au fil de l'eau dans une boite de dialogue. Problème : Les appels aux commandes font planter Autocad.Solution : Faire appel à ces fonction via le vlisp et ça marche.Exemple : (command "_.audit") --> (vla-auditinfo (vla-get-activedocument (vlax-get-acad-object))) Le chemin que je t'ai donné permet de définir des SCU. Pour activer un SCU nommé --> (vla-put-Activeucsc (vla-item (vla-get-usercoordinatesystems (vla-get-activedocument (vlax-get-acad-object))) "Mon_SCU")) Exemple extrait de l'aide pour ajouter un SCU(vl-load-com) (defun c:Example_UserCoordinateSystems() ;; This example finds the current UserCoordinateSystems collection and ;; adds a new UCS to that collection. (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) (setq UCSColl (vla-get-UserCoordinateSystems doc)) ;; Create a UCS named "TEST" in the current drawing ;; Define the UCS (setq origin (vlax-3d-point 4 5 3) xAxisPnt (vlax-3d-point 5 5 3) yAxisPnt (vlax-3d-point 4 6 3)) ;; Add the UCS to the UserCoordinatesSystems collection (setq ucsObj (vla-Add UCSColl origin xAxisPnt yAxisPnt "TEST")) (alert (strcat "A new UCS called " (vla-get-Name ucsObj) " has been added to the UserCoordinateSystems collection.")) ) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 30 mai 2016 Posté(e) le 30 mai 2016 Salut, À essayer : utiliser command-s à la place de command. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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