Aller au contenu

Pour aller plus loin en LISP

Vous avez déjà écrit des programmes LISP? Vous souhaitez vous perfectionner? Vous butez sur un problème de programmation? Les termes de DCL, ActiveX, réacteur, compilation ne vous sont pas inconnus? Ce forum est pour vous.


1 270 sujets dans ce forum

  1. Ces listes qui n\'en sont pas

    • 9 réponses
    • 12,4 k vues
  2. Pourquoi Lisp?

    • 1 réponse
    • 7,9 k vues
  3. Les dictionnaires

    • 23 réponses
    • 19,8 k vues
  4. Boutons DCL Oui / Non

    • 0 réponse
    • 28 vues
    • 4 réponses
    • 213 vues
    • 7 réponses
    • 965 vues
    • 15 réponses
    • 286 vues
    • 7 réponses
    • 178 vues
    • 0 réponse
    • 196 vues
    • 15 réponses
    • 403 vues
  5. Contour de hachure

    • 6 réponses
    • 249 vues
    • 52 réponses
    • 3,4 k vues
    • 4 réponses
    • 329 vues
    • 3 réponses
    • 219 vues
    • 9 réponses
    • 419 vues
    • 19 réponses
    • 644 vues
    • 9 réponses
    • 3,8 k vues
    • 4 réponses
    • 333 vues
    • 3 réponses
    • 528 vues
    • 2 réponses
    • 346 vues
  6. setpropertyvalue

    • 3 réponses
    • 390 vues
    • 1 réponse
    • 429 vues
    • 3 réponses
    • 622 vues
  7. controle personaliser

    • 3 réponses
    • 1,5 k vues
  8. ssget et réseau 1 2

    • 29 réponses
    • 2,1 k vues


  • Statistiques des forums

    • Total des sujets
      46,7 k
    • Total des messages
      282,6 k
  • Sujets

  • Messages

    • Salut, Les bibliothèques DCL fournissent des boutons ou groupes de boutons à utiliser pour fermer les boites de dialogue (ok_only, ok_cancel, ok_cancel_help, ok_cancel_help_info). On peut créer un groupe de boutons Oui / Non (yes_no) utilisable de la même façon que ok_cancel en ajoutant ces quelques lignes à son fichier DCL. yes_button : retirement_button { label = " Oui "; key = "accept"; is_default = true; } no_button : retirement_button { label = " Non "; key = "cancel"; is_cancel = true; } yes_no : column { : row { fixed_width = true; alignment = centered; yes_button; : spacer { width = 2; } no_button; } } On peut aussi utiliser ce même code pour écrire le fichier DCL "à la volée" depuis le fichier LISP. Un exemple avec une boite de dialogue "générique" qui permet d'afficher un message / question et des boutons Oui / Non. (defun YesNoBox (title msg / temp file dcl_id status) ;; Créer un fichier DCL temporaire (setq temp (vl-filename-mktemp "Tmp.dcl") file (open temp "w") ) ;; Ecrire le fichier ;; boutons Oui / Non (write-line "yes_button : retirement_button { label = \" Oui \"; key = \"accept\"; is_default = true; } no_button : retirement_button { label = \" Non \"; key = \"cancel\"; is_cancel = true; } yes_no : column { : row { fixed_width = true; alignment = centered; yes_button; : spacer { width = 2; } no_button; } }" file ) ;; boite de dialogue principale (write-line "yes_no_box : dialog { key = \"titre\"; spacer;" file) (if (vl-consp msg) (progn (write-line ": paragraph {" file) (foreach l msg (write-line (strcat ": text_part{ label = \"" l "\";}") file) ) (write-line "}" file) ) (write-line (strcat ": text { label = \"" msg "\"; }") file) ) (write-line "spacer; yes_no; }" file) (close file) ;; Ouvrir la boite de dialogue (setq dcl_id (load_dialog temp)) (if (not (new_dialog "yes_no_box" dcl_id)) (exit) ) (set_tile "titre" title) (action_tile "accept" "(done_dialog 1)") (setq status (start_dialog)) (unload_dialog dcl_id) ;; Supprimer le fichier (vl-file-delete temp) ;; Renvoyer le résultat (Oui = 1 , Non = 0) status )  
    • @La Lozère Si les plans ne s'intersectent pas, Covadis applique une ouverture de +/- 20°   Olivier  
    • hello quelques routines, pour extraire sans ou avec destruction des entites dans l'XREF ou bloc, pour incorporer avec ou sans destruction d'entité dans l'Xref ou bloc   les Xref ne doivent pas etre ouvert dans autocad pour extraire d'un Xref, le plus simple et de ne faire apparaitre que la couche a extraire. et pour la routine "c:extraire_entite_xref_bloc_copie_CALQUE"  il suffit d'etre déja dans le calque ou l'on veut que la copie soit faite SANS DESTRUCTION DES ENTITES c:extraire_entite_xref_bloc_copie c:extraire_entite_xref_bloc_copie_CALQUE c:INCORPORER_entite_xref_bloc_copie AVEC DESTRUCTION DES ENTITES c:extraire_entite_xref_bloc_efface c:INCORPORER_entite_xref_bloc_efface a+ Phil   ;;;------------------------------------------ ;;;EXTRAIRE DES ENTITEES D'UN BLOC OU XREF ;;;------------------------------------------ (defun c:extraire_entite_xref_bloc_copie () (setq osm (getvar "osmode")) (prompt "\nVEUILLEZ SELECTIONNER UN XREF OU BLOC POUR L'EXTRACTION D'ENTITES ") (command-s "-editref" pause "" "OK" "T" "N") (prompt "\nCLIQUER SUR LES OBJETS A EXTRAIRE :") (setq obj nil) (while (null obj) (setq obj (ssget))) (setvar "osmode" 0) (command-s "ALIGNER3D" obj "" "c" "0,0,0" "100000,0,0" "" "0,0,0" "100000,0,0" "q") (command-s "_refset" "S" obj "") (command-s "_refclose" "e" "d" "0,0,0" "0,0,0" ) (setvar "osmode" osm) ) (defun c:extraire_entite_xref_bloc_copie_CALQUE () (setq osm (getvar "osmode")) (setq cav (getvar "clayer")) (prompt "\nVEUILLEZ SELECTIONNER UN XREF OU BLOC POUR L'EXTRACTION D'ENTITES ") (command-s "-editref" pause "" "OK" "T" "N") (prompt "\nCLIQUER SUR LES OBJETS A EXTRAIRE :") (setq obj nil) (while (null obj) (setq obj (ssget))) (setvar "osmode" 0) (command-s "ALIGNER3D" obj "" "c" "0,0,0" "100000,0,0" "" "0,0,0" "100000,0,0" "q") (command "_laymch" obj "" "N" cav) (command-s "_refset" "S" obj "") (command-s "_refclose" "e" "d" "0,0,0" "0,0,0" ) (setvar "osmode" osm) ) (defun c:INCORPORER_entite_xref_bloc_copie () (setq osm (getvar "osmode")) (prompt "\nCLIQUER SUR LES OBJETS A INCORPORER :") (setq obj nil) (while (null obj) (setq obj (ssget))) (setvar "osmode" 0) (command-s "ALIGNER3D" obj "" "c" "0,0,0" "100000,0,0" "" "0,0,0" "100000,0,0" "q") (prompt "\nVEUILLEZ SELECTIONNER UN XREF OU BLOC POUR L'INCORPORATION D'ENTITES ") (command-s "-editref" pause "" "OK" "T" "N") (command-s "_refset" "A" obj "") (command-s "_refclose" "e" "d" "0,0,0" "0,0,0" ) (setvar "osmode" osm) ) (defun c:extraire_entite_xref_bloc_efface () (setq osm (getvar "osmode")) (prompt "\nVEUILLEZ SELECTIONNER UN XREF OU BLOC POUR L'EXTRACTION D'ENTITES ") (command-s "-editref" pause "" "OK" "T" "N") (prompt "\nCLIQUER SUR LES OBJETS A EXTRAIRE :") (setq obj nil) (while (null obj) (setq obj (ssget))) (setvar "osmode" 0) (command-s "_refset" "S" obj "") (command-s "_refclose" "e" "d" "0,0,0" "0,0,0" ) (setvar "osmode" osm) ) (defun c:INCORPORER_entite_xref_bloc_efface () (setq osm (getvar "osmode")) (prompt "\nCLIQUER SUR LES OBJETS A INCORPORER :") (setq obj nil) (while (null obj) (setq obj (ssget))) (setvar "osmode" 0) (prompt "\nVEUILLEZ SELECTIONNER UN XREF OU BLOC POUR L'INCORPORATION D'ENTITES ") (command-s "-editref" pause "" "OK" "T" "N") (command-s "_refset" "A" obj "") (command-s "_refclose" "e" "d" "0,0,0" "0,0,0" ) (setvar "osmode" osm) )    
    • Bonjour, Non, justement, il n'y a pas de superposition de ligne. Merci.
    • hello La Lozere   une piste peut etre, ca "bave"  parce qu'il y a des lignes superposées "pile poil". quand c'est une seule ligne, c'est plus nette, j'ai l'impression, ou la ligne semble moins épaisse après sélection. un moyen de vérifier les superpositions d’entités   a+ Phil
  • Sujets

×
×
  • Créer...