Aller au contenu

UCSXDIR et UCSYDIR


l56

Messages recommandés

Coucou

 

Désolé d'utiliser une réponse récurrente mais :

Ta question n'est pas claire et il te faut donc expliciter

Tu 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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

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é