Bonjour à tous,

Je suis novice et par des recherches sur internet j'ai récupéré des fichiers lisp et dcl.

J'essaie de créer un lisp avec sa boite de dialogue, j'en suis au tout début mais étape par étape,

je voudrais à partir des lisp en faire qu'un et le lier avec la boite de dialogue mais pour un novice comme moi difficile ,j'espère y arriver avec votre aide.

Voilà, j'aimerais dans un premier temps que dans la boite de dialogue s'affiche automatiquement les objets sur le calque zéro et les calques du dessin (voir ci dessous):

boite dialogue (comment introduire les listes venant du lisp) :

//---------------------------------------------------------------------------------------------------------

// MyFirst

//---------------------------------------------------------------------------------------------------------

MyFirst : dialog {

  label = "Charte graphique";

  : boxed_column {    

label = "Liste des objets sur le calque zéro";    

: list_box {      

key = "amar";//Value1$ from lsp file      

height = 6.27;      

fixed_height = true;      

width = 32.92;      

fixed_width = true;    

}    

spacer;  

}

  : boxed_column {    

label = "Liste des calques";    

: list_box {      

multiple_select = true;      

key = "List2";//Value2$ from lsp file      

height = 6.27;      

fixed_height = true;      

width = 32.92;      

fixed_width = true;    

}    

spacer;  

}  

spacer;  

ok_only;

}

 

le lisp de la boite de dialogue:

     ;----------------------------------------------------------------------------------------------------------

; c:MyFirst - You've got to start somewhere

; Syntax: MyFirst

;----------------------------------------------------------------------------------------------------------

(defun c:MyFirst (/ Dcl_Id%)

  (princ "\nMyFirst")(princ)

  ; Load Dialog

  (setq Dcl_Id% (load_dialog "MyDialogs.dcl"))

  (new_dialog "MyFirst" Dcl_Id%)

  ; Dialog Actions (action_tile "List2" "(set_list_value \"List2@\" \"Value2$\")");*Included

  (start_dialog)

  ; Unload Dialog

  (unload_dialog Dcl_Id%)

  (princ)

);defun c:MyFirst

Dans le lisp de la boite de dialogue, j'aimerais y introduire des lisp de gile qui me permettra donc d'avoir la liste des objets sur le calque zéro et la liste des calques et ainsi l'afficher dans les rubriques correspondantes au niveau de la boite de dialogue.

voici le lisp pour obtenir la liste des calques (comment renvoyer la liste des calques du dessin dans la boite de dialogue):

((defun c:calques (/ l r)

   (acad_strlsort

     (while (setq l (tblnext "layer" (not l)))

       (setq r (cons (cdr (assoc 2 l)) r))

     )

   )

 )

)

voici le lisp pour obtenir les objets sur le calques (comment créer une liste et la renvoyer sur la boite de dialogue) :

;; MS0 sélectionne les objets sur le calque 0 dans l'espace objet
(defun c:ms0 (/ ss)
  (if (setq ss (ssget "_X" '((8 . "0") (410 . "Model"))))
    (progn
      (sssetfirst nil ss)
      (princ
    (strcat    "\n"
        (itoa (sslength ss))
        " objet(s) sur le calque '0' dans l'espace objet."
    )
      )
    )
    (princ
      "\nAucun objet sur le calque '0' dans l'espace objet."
    )
  )
  (princ)
)

 

Merci d'avance pour votre aide.

Vues : 34

Y répondre

Membres

Bibliothèque TraceParts - Fichiers 2D & 3D GRATUITS

© 2014   Créé par AUGIfr

Badges  |  Signaler un problème  |  Conditions d'utilisation