Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous.

Un LISP récupéré sur CADXP (Maxence Delanoy) pour tracer les axes d'un cercle.

 
;Ax.lsp
;Version 1.0
;Programme AutoLISP écrit par Maxence Delannoy (E-Mail:maxence.delannoy@wanadoo.fr)
;Dernière modification le 13.01.2000
;Objet: Sélectionnez un cercle, Ax dessinera les traits d'axes pour vous !

(defun c:AX ( / AncErr AncCol AncTpl AncCmd AncBmp AncOsm LstEnt Centre Ray)
 (setq
   AncErr *error*
   *error* AX_ERR 
   AncCol (getvar "CECOLOR") 
   AncTpl (getvar "CELTYPE") 
   AncCmd (getvar "CMDECHO")
   AncBmp (getvar "BLIPMODE")
   AncOsm (getvar "OSMODE")
  )
 (setvar "CECOLOR" "4") ; Couleur des traits d'axes
 (if (not (tblsearch "LTYPE" "AXES")) (command "_.LINETYPE" "_L" "AXES" "" "")) ; Type de ligne des axes
 (setvar "CELTYPE" "AXES")
 (setvar "CMDECHO" 0)
 (setvar "BLIPMODE" 0)
 (setvar "OSMODE" 0)  
  
 (while (setq LstEnt (entget (car (entsel "\nSélectionnez un cercle: "))))
   (if (equal '(0 . "CIRCLE") (assoc 0 LstEnt))
     (progn
       (setq 
         Centre (cdr (assoc 10 LstEnt))
         Ray (cdr (assoc 40 LstEnt))
       )
       (command "_LINE" 
         (list (+ (nth 0 Centre) (* 1.1 Ray)) (nth 1 Centre))
         (list (- (nth 0 Centre) (* 1.1 Ray)) (nth 1 Centre))
         ""
         "_LINE" 
         (list (nth 0 Centre) (+ (nth 1 Centre) (* 1.1 Ray)))
         (list (nth 0 Centre) (- (nth 1 Centre)(* 1.1 Ray)))
         ""
       )                         
     )
   )
 )
 (setvar "OSMODE" AncOsm)
 (setvar "BLIPMODE" AncBmp)
 (setvar "CMDECHO" AncCmd)
 (setvar "CELTYPE" AncTpl)
 (setvar "CECOLOR" AncCol)
 (setq *error* AncErr)
 (princ)
)

(defun AX_ERR (Msg)
 (setvar "OSMODE" AncOsm)
 (setvar "BLIPMODE" AncBmp)
 (setvar "CMDECHO" AncCmd)
 (setvar "CELTYPE" AncTpl)
 (setvar "CECOLOR" AncCol)
 (setq *error* AncErr)
 (princ)
)
(defun hello_world ()
 (alert "Hello World!"))
(prompt "M.D.D. - Ax.lsp chargé. Tapez AX pour tracer les traits d'axes d'un cercle.")
(princ)

Pour l'instant, l'axe est tracé dans le calque courant avec la couleur et le type de ligne "forcé" (conformément au LISP)

Mon calque "Axe" se nomme "2-AXE".

Après plusieurs essais de modification du LISP, plus rien ne tournait :casstet:

Quelqu'un pourrait-il m'aider pour que l'axe se trace avec le calque "2-AXE" et donc ses valeurs propres => type de ligne "du calque" - couleur "du calque".....

Merci pour votre aide.

Posté(e)

Bonjour,

 

Voici ma proposition, ça a l'air de fonctionner... :P

 

;Ax.lsp

;Version 1.0

;Programme AutoLISP écrit par Maxence Delannoy (E-Mail:maxence.delannoy@wanadoo.fr)

;Dernière modification le 13.01.2000

;Objet: Sélectionnez un cercle, Ax dessinera les traits d'axes pour vous !



(defun c:AX ( / AncErr AncLay AncCol AncTpl AncCmd AncBmp AncOsm LstEnt Centre Ray)

 (setq

   AncErr *error*

   *error* AX_ERR

   AncLay (getvar "CLAYER")

   AncCol (getvar "CECOLOR") 

   AncTpl (getvar "CELTYPE") 

   AncCmd (getvar "CMDECHO")

   AncBmp (getvar "BLIPMODE")

   AncOsm (getvar "OSMODE")

  )

 (setvar "CECOLOR" "DuCalque") ; Couleur des traits d'axes

 (setvar "CELTYPE" "DuCalque") ; Type de ligne des axes

 (setvar "CMDECHO" 0)

 (setvar "BLIPMODE" 0)

 (setvar "OSMODE" 0)


 (command "_.-LAYER" "_M" "2-AXE" "") ;  Calque des axes


 (while (setq LstEnt (entget (car (entsel "\nSélectionnez un cercle: "))))

   (if (equal '(0 . "CIRCLE") (assoc 0 LstEnt))

     (progn

       (setq 

         Centre (cdr (assoc 10 LstEnt))

         Ray (cdr (assoc 40 LstEnt))

       )

       (command "_LINE" 

         (list (+ (nth 0 Centre) (* 1.1 Ray)) (nth 1 Centre))

         (list (- (nth 0 Centre) (* 1.1 Ray)) (nth 1 Centre))

         ""

         "_LINE" 

         (list (nth 0 Centre) (+ (nth 1 Centre) (* 1.1 Ray)))

         (list (nth 0 Centre) (- (nth 1 Centre)(* 1.1 Ray)))

         ""

       )                         

     )

   )

 )

 (setvar "OSMODE" AncOsm)

 (setvar "BLIPMODE" AncBmp)

 (setvar "CMDECHO" AncCmd)

 (setvar "CELTYPE" AncTpl)

 (setvar "CECOLOR" AncCol)

 (setvar "CLAYER" AncLay)

 (setq *error* AncErr)

 (princ)

)



(defun AX_ERR (Msg)

 (setvar "OSMODE" AncOsm)

 (setvar "BLIPMODE" AncBmp)

 (setvar "CMDECHO" AncCmd)

 (setvar "CELTYPE" AncTpl)

 (setvar "CECOLOR" AncCol)

 (setvar "CLAYER" AncLay)

 (setq *error* AncErr)

 (princ)

)

(defun hello_world ()

 (alert "Hello World!"))

(prompt "M.D.D. - Ax.lsp chargé. Tapez AX pour tracer les traits d'axes d'un cercle.")

(princ)

Posté(e)

Merci Bryce.

J'avais bien essayé de bricoler là dedans, mais rien n'y avait fait.

 

setvar "CECOLOR" "4") ; Couleur des traits d'axes
(if (not (tblsearch "LTYPE" "AXES")) (command "_.LINETYPE" "_L" "AXES" "" "")) ; Type de ligne des axes
(setvar "CELTYPE" "AXES")
(setvar "CMDECHO" 0)
(setvar "BLIPMODE" 0)
(setvar "OSMODE" 0)

 

Merci à toi.

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é