Aller au contenu

Lisps de gile


(gile)

Messages recommandés

Mille mercis à toi (gile)...

 

Et aussi pour tout ce que tu fais pour nous... En particulier et en général...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Bonjours à tous...

 

(gile), j'ai un petit souci avec ta commande "getlayers".

 

En effet, le liste des calques est assez importante et AutoCAD veut créer une fenêtre trop grande, donc, il m'affiche ce message : deuxième image.

 

Saurais-tu comment y palier s'il te plait ?

 

J'ai aussi une deuxième erreur avec un calque d'une XRef : première image.

 

De plus, ce Lisp ajoute à la liste les calques des Xref, comment ne pas les ajouter.

 

Denis...

post-6426-0-64433900-1462181667_thumb.png

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Pour palier au problème de taille, tu peux essayer en remplaçant la liste déroulante (popup_list) par une boite de liste (list_box) dans la construction du fichier DCL (remplace aussi edit_width par width pour ce contrôle).

Pour modifier la largeur des contrôles, il faut augmenter les valeurs de edit_width ou width.

 

Pour écarter les calques des xrefs, remplace l'expression (while ...) qui collecte les calques au début de la routine par celle-ci :

  (while (setq lay (tblnext "LAYER" (not lay)))
   (if	(not (wcmatch (cdr (assoc 2 lay)) "*|*"))
     (setq lst (cons (cdr (assoc 2 lay)) lst))
   )
 )

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Salut (gile) et merci de me répondre.

 

Mais je pense que tu confonds de Lisp, voici celui dont je parlais :

(defun getlayers (titre lst1 lst2 / toggle_column tmp file lay layers len dcl_id lst)
 (defun toggle_column (lst)
   (apply
     'strcat
     (mapcar
       (function
         (lambda (x)
           (strcat ":toggle{key=" (vl-prin1-to-string x) ";label=" (vl-prin1-to-string x) ";}")
         ) ;_ Fin de lambda
       ) ;_ Fin de function
       lst
     ) ;_ Fin de mapcar
   ) ;_ Fin de apply
 ) ;_ Fin de defun
 (setq tmp  (vl-filename-mktemp "tmp.dcl")
       file (open tmp "w")
 ) ;_ Fin de setq
 (while (setq lay (tblnext "LAYER" (not lay))) (setq layers (cons (cdr (assoc 2 lay)) layers)))
 (setq layers (vl-sort layers '<)
       len    (length layers)
 ) ;_ Fin de setq
 (write-line
   (strcat "GetLayers:dialog{label="
           (cond (titre (vl-prin1-to-string titre))
                 ("\"Choisir les calques\"")
           ) ;_ Fin de cond
           ";:boxed_row{:column{"
           (cond ((< len 12) (toggle_column layers))
                 ((< len 24)
                  (strcat (toggle_column (sublist layers 0 (/ len 2)))
                          "}:column{"
                          (toggle_column (sublist layers (/ len 2) nil))
                  ) ;_ Fin de strcat
                 )
                 ((< len 45)
                  (strcat (toggle_column (sublist layers 0 (/ len 3)))
                          "}:column{"
                          (toggle_column (sublist layers (/ len 3) (/ len 3)))
                          "}:column{"
                          (toggle_column (sublist layers (* (/ len 3) 2) nil))
                  ) ;_ Fin de strcat
                 )
                 (T
                  (strcat (toggle_column (sublist layers 0 (/ len 4)))
                          "}:column{"
                          (toggle_column (sublist layers (/ len 4) (/ len 4)))
                          "}:column{"
                          (toggle_column (sublist layers (/ len 2) (/ len 4)))
                          "}:column{"
                          (toggle_column (sublist layers (* (/ len 4) 3) nil))
                  ) ;_ Fin de strcat
                 )
           ) ;_ Fin de cond
           "}}spacer;ok_cancel;}"
   ) ;_ Fin de strcat
   file
 ) ;_ Fin de write-line
 (close file)
 (setq dcl_id (load_dialog tmp))
 (if (not (new_dialog "GetLayers" dcl_id))
   (exit)
 ) ;_ Fin de if
 (foreach n lst1 (set_tile n "1"))
 (foreach n lst2 (mode_tile n 1))
 (action_tile
   "accept"
   "(setq lst nil)
   (foreach n layers
   (if (= (get_tile n) \"1\")
   (setq lst (cons n lst))))
   (done_dialog)"
 ) ;_ Fin de action_tile
 (start_dialog)
 (unload_dialog dcl_id)
 (vl-file-delete tmp)
 lst
) ;_ Fin de defun

Mais je n'ai trouvé que le code que tu donne en exemple, je n'ai ni trouvé popup_list ni edit_width.

 

Ou bien il me faut d'urgence des lunettes... ;)

 

En remplaçant le while comme tu me l'as conseillé, la liste est vide dans la fenêtre (image jointe).

 

Encore merci pour te pencher sur mon problème...

post-6426-0-53951800-1462190606_thumb.png

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Oupss!...

 

J'ai confondu avec "GetLayer" (qui permet de sélectionner 1 calque parmi les calques du dessin).

 

Avec "GetLayers" il n'y a pas moyen de réduire la taille de la boite dialogue parce que tous les calques sont traités individuellement.

 

L'expression (while ...) donnée plus haut ne collecte que les blocs dont le nom ne contient pas le caractère '|', caractère réservé par AutoCAD pour les calques, blocs, etc. issus de xrefs.

Mais la variable contenant la liste des calques est layers dans cette routine et pas lst (comme dans GetLayer).

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Ce n'est pas grave (gile), je m'en doutais un peu...

 

Je pensais à un traitement multiselection dans une fenêtre comme dans ton lisp "ListBox". Bien que ListBoc n'autorise qu'une seule sélection.

 

Merci tout de même pour ton aide. Effectivement, ça fonctionne beaucoup mieux avec la variable "layers".

 

Par contre, un truc "bizarre"...

 

Cette fenêtre post-6426-0-26568700-1462198297_thumb.png est le message affiché avant l'affichage de la liste des calques. Ce calque ne sera pas dans la liste qui suivra.

 

Voici la fenêtre de la liste des calques, post-6426-0-70038300-1462198303_thumb.png. On remarque que le dernier calque de la colonne 3 est aussi en premier dans la colonne 4...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

PhilPhil, non, je n'ai qu'un seul calque de ce nom dans cette Xref... Sans espaces...

 

@+

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

hello

 

gros oupss désolé ca marche,

j'avais pas déclarer les chemins de recherches des sous répertoires

je les avais déclaré comme etant des emplacements approuvés seulement

 

comme quoi faut faire 2/3 fois les manips

 

a+

 

Phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

salut le crabe

 

c'est le fichier 3.5 mais quand tu l'ouvres c'est ecrit 3.6 en haut

donc si ca se trouve tu l'as deja

 

bon week end

 

a+

 

Phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...
  • 3 semaines après...

Bonjour (gile)...

 

Voilà, j'ai RadicalPurge (RP) sur mon Tocad au boulo depuis belles lurettes... Mais voilà, quand je tente de l'installer chez moi, j'ai ceci...:

post-6426-0-46833300-1466102210_thumb.jpg

Puis, ceci :

post-6426-0-80482600-1466102239_thumb.jpg

Et ensuite... Oops, parti, rien n'est installé... C'est "chiant", car ton RadicalPurge, je l'utilise des centaines de fois par jour ! ! ! Tellement il est radicalement mieux que le "Purge" d'AutoCAD...

 

Si tu as une solution ou une idée... Je suis preneur...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Il y a déjà eu plusieurs messages à ce sujet. L'erreur est due à un changement dans Windows Installer qui ne permet plus de lire dans la section Current User de la base de registre.

 

J'ai toujours grandement recommandé d'utiliser la version téléchargeable sur Exchange Apps dés lors qu'on utilise AutoCAD 2012 ou ultérieur.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Salut (gile), et merci pour cette réponse...

 

Ça fonctionne nikel...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

  • 5 mois après...
  • 3 mois après...

Salut (gile)

 

concernant le lisp : SSfilter

 

serait-il possible d'ajouter la sélection en fonction du style de tracé ? wink.gif

 

j'ai voulu le modifier mais je ne comprends absolument rien à la séquence contenue dans (setq flsp ...) blink.gif

(il faudra vraiment que j'arrive à trouver un jour, le temps pour m'y mettre !!!) angry.gif

Raph.

Celui qui pose une question est bête 5 minutes, celui qui n'en pose pas l'est toute sa vie !

Lien vers le commentaire
Partager sur d’autres sites

  • 3 mois après...

Bonjour à tous.

 

Suite à ma mise à jour AutoCAD MAP 2017 vers 2018, j'ai maintenant les deux AutoCAD.

 

Problème, RadicalPurge fonctionne très bien sur mon 2017, mais je ne l'ai pas sur mon 2018, ce qui est normal.

 

Mais si je lance l'installation de RP, il me propose une réparation ou une désinstallation, ce qui est aussi normal.

 

Comment avoir RP sur les deux AutoCAD en même temps ?

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Salut (gile), et merci pour cette réponse.

 

J'ai bien désinstallé RadicalPurge puis installé la dernière version (1.2.1).

 

J'ai RP sur ma version AutoCAD MAP 2017 mais pas sur AutoCAD MAP 2018.

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

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é