Probleme sur "command"
-
Bonjour,
Je suis en train d'adapter mes lisp sur ZWCAD. J'ai un lisp tout simple dans lequel je cherche simplement à créer un nouveau SCU sur un objet avec un Z en fonction d'une altitude à taper.
Il ne fonctionne pas sur ZWLISP. Visiblement c'est la dernière ligne ou il y a la commande qui ne convient pas. Il n'accepte pas mon point "PC3".
Comment régler ce problème ?
(defun c:pc()
(command "_.ucs" "_object" (cadr(entsel)))
(setq PC (getreal "\nEntrez plan de comparaison Z en m: "))
(setq PC3 (list 0 (- 0 PC) 0))
(command "_ucs" "_new" PC3)
(print)
) -
Bonjour,
Pouvez vous tester le code suivant. N'hésitez pas à revenir vers nous.
Cordialement
L'équipe support ZW France
----------------------------------------------------------------------------------------------------------------------
(defun c:pc()
;; Sélectionnez un objet pour définir le SCU
(command "_ucs" "_object" (cadr (entsel "\nSélectionnez un objet pour définir l'UCS : ")))
;; Demandez une altitude Z à l'utilisateur
(setq PC (getreal "\nEntrez la valeur Z (altitude en mètres) : "))
;; Validation de l'entrée utilisateur
(if (not PC)
(progn
(princ "\nErreur : veuillez entrer une valeur valide.")
(exit)
)
)
;; Création du point Z pour le nouvel UCS
(setq PC3 (list 0.0 PC 0.0)) ;; Liste avec des réels pour éviter les erreurs
;; Application de la nouvelle origine
(command "_ucs" "_origin" (car PC3) (cadr PC3) (caddr PC3)) ;; Décompose la liste PC3 en X, Y, Z
;; Message de confirmation
(princ "\nLe SCU a été modifié avec succès.")
(princ)
)
---------------------------------------------------------------------------------------------------------------------- -
Bonjour,
Merci d'avoir pris un peu de temps pour me répondre. La fonction sert à mettre le Y égal au Z, lorsque j'ai besoin de coter les altitudes d'une façade projetée sur le plan XY. Le point avec Y = -Z est bien nécessaire puisque je décale le SCU pour que le SCU soit Zm en dessous de mon entité.
Cette fonction fonctionne très bien sur Autocad, et lorsque j'ai voulu l'essayer sur ZWCAD elle ne fonctionnait plus. Elle me laisse l'origine sur l'entité choisie, avec les coordonnées 0,0,0 au lieu de 0,Z,0.
J'ai essayé votre code. Je ne connaissais pas la fonction "-origin". Je l'ai testé sans passer par l'appli et ça fonctionne, comme fonctionne mon code. Mais dès que je passe par le lisp ça ne fonctionne pas. Par contre mon code fonctionne désormais par magie... Je n'ai pourtant rien fait sauf redémarrer mon poste. ! J'ai vérifié dans "option" que la priorité soit bien "saisie au clavier, script exceptés". C'est le cas.
Je vais réessayer demain.
Merci encore et bonne soirée