-
Compteur de contenus
4 029 -
Inscription
-
Dernière visite
-
Jours gagnés
21
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par DenisHen
-
Bonjour à la communauté. Je sais que je vais en facher certains, mais pour les besoins d'un lisp que je viens de terminer, j'ai tenté aujourd'hui de faire un DCL qui va avec. J'en avais déjà fais plusieurs il y a quelques années, et j'en avais gardé un très maivais souvenir... J'ai donc commencé mon DCL vers 12h30, à 17h00, je n'avais fais que ça (et sans le code qui va avec) : Après deux aspirines, je me suis demandé si par le VBA, ce ne serait pas plus "rapide" ? J'ai donc ouvert l'éditeur VBA, et : Avec le code VBA qui va bien, en même pas une heure... Sachant que mon code VBA fait une centaine de lignes et qu'il ne sert juste qu'à stocker et attribuer des ldata (ces échanges sont très rapides avec nos PC actuels) ex : ThisDrawing.SendCommand "(setvar" & """HPNAME""" & """POROTHERM""" & """)" & vbCr Ou encore : ThisDrawing.SetVariable "users1", "" ThisDrawing.SendCommand "(setvar " & """users1""" & " (vlax-ldata-get " & """DenisH""" & " " & """RepTabloAxe""" & "))" & vbCr RepTabloAxeVal = ThisDrawing.GetVariable("users1") Je sais, ce n'est pas académique, mais ça fait le job... J'ai aussi testé OpenDCL et ObjectDCL, mais ils ne fonctionnent pas chez moi (problème d'installation, de langue, de compatibilité ? ?). Et je ne sais toujours pas s'il faut les installer sur les autres machines. L'IDE d'AutoLISP ne progresse pas beaucoup depuis très longtemps, mais on a tous pris nos petites habitudes, par contre, avec les DCL, Pffffff... Quelqu'un aurait une solution pour m'aider à tout faire des DCL simplement ? Bien à toi la communauté. Denis...
-
Menu personnalisé et déploiement multi-postes
DenisHen a répondu à un(e) sujet de Patricegeo dans AutoCAD 2018
Salut @Patricegeo. Je suis exactement dans le même cas que toi. Aurais-tu plus d'information sur ton fichier batch ? -
Nouveautés AutoLISP avec AutoCAD 2021
DenisHen a répondu à un(e) sujet de (gile) dans LISP et Visual LISP
Salut à toi Ô Décapode... Oui, et pour ce prix là, c'est la version Pro... -
Nouveautés AutoLISP avec AutoCAD 2021
DenisHen a répondu à un(e) sujet de (gile) dans LISP et Visual LISP
Bonjour à la communauté. Effectivement, la bonne nouvelle a été courte. Pour ma part, j'utilise toujours VLIDE, j'avais essayé VS Code, mais je n'ai pas trop aimé sa manipulation et son "intégration" à AutoCAD, et j'ai trop d'habitudes de mon VLIDE. La bonne nouvelle aurait été une évolution de l'IDE, comme celui de BricsCAD par exemple, qui est réellement bien foutu. Je m'y suis intéressé lorsqu'on voulait changer AutoCAD par un "clone", beaucoup moins couteux que les produits AutoDe$k... J'allais essayer ZWCad, mais la direction a changé d'avis avant. Denis. -
Lisp qui ne fonctionne plus sous 2020
DenisHen a répondu à un(e) sujet de Fruity dans LISP et Visual LISP
Salut. Et ce code fonctionne ? ;; ********************************************************************************** ;;; Sauve et Quitte tous les dessins ouverts (d'après CAD Studio - www.cadforum.cz) ;;; ********************************************************************************* (defun C:SaveQuitAll (/ dwg) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (vlax-for dwg (vla-get-Documents (vlax-get-acad-object)) (if (= (vla-get-active dwg) :vlax-false) (vla-close dwg :vlax-false) ) ;_ Fin de if ) ;_ Fin de vlax-for (command "._qsave") (command "._close") (vla-endundomark doc) (princ) ) ;_ Fin de defun ;; ************************************************************************* ;;; Quitte tous les dessins ouverts (d'après CAD Studio - www.cadforum.cz) ;;; ************************************************************************ (defun C:QuitAll (/ dwg) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (vlax-for dwg (vla-get-Documents (vlax-get-acad-object)) (if (= (vla-get-active dwg) :vlax-false) (vla-close dwg :vlax-false) ) ;_ Fin de if ) ;_ Fin de vlax-for (command "_-purge" "TO" "" "n" "_zoom" "et" "_qsave" "_close" "_y") (vla-endundomark doc) (princ) ) ;_ Fin de defun -
Bonjour à la communauté. Je cherchais la solution que propose @Luna, et je suis tombé dans un très vieux lisp dans mes archives : (defun c:dxf_lst () (initget "Entité Sous-entité") (mapcar 'print (entget (car (if (= (getkword "\n[Entité/Sous-entité]< E >: ") "Sous-entité") ;_ Fin de = (nentsel) (entsel) ) ;_ Fin:if ) ;_ Fin:car ) ;_ Fin:entget ) ;_ Fin:mapcar (textscr) (princ) ) ;_ Fin de defun Denis...
-
[Résolu] Retours de initget et getkword incohérents
DenisHen a répondu à un(e) sujet de Aleck_Ultimate dans Débuter en LISP
Bonjour @(gile) et merci pour ton conseil. Je ne pense jamais à tester le code dans la console, mais tu as raison, elle est notre amie. -
Décalé à gauche et droite en 1 seul clic
DenisHen a répondu à un(e) sujet de willy95 dans Débuter en LISP
Merci @Luna pour ton aide. Effectivement, je ne redonne toujours la valeur initiale des variables que je change pour les besoins de mes routines... Mais il y a des certaines variables qui sont et doivent restées communes à tous les utilisateurs (sur un même poste ou sur les autres du réseau. Merci encore, tu m'ouvres une porte sur d'autres perspectives... Bisous. Denis. -
Bonjour @Luna et un grand merci pour cette leçon et ton aide... J'ai appris plein de truc... Et le (not break) et le (null choix) (setq break T)), je trouve ça super élégant... Mais je pense qu'il y a une parenthèse en trop avant le (null. En tous cas, un super grand merci...
-
Décalé à gauche et droite en 1 seul clic
DenisHen a répondu à un(e) sujet de willy95 dans Débuter en LISP
Coucou @Luna. Je pense, peut-être à tord, que certaines variables sont enregistrées dans le profil utilisateur d'AutoCAD. Et le fait de pouvoir stocker des variables avec une valeur commune à tous les utilisateurs serait intéressant, je pense. Mais c'était une question juste pour savoir si c'était possible, car actuellement, j'utilise un LiSP qui réaffecte certaines variables. En tous cas, merci pour ta réponse. Denis. -
[Résolu] Retours de initget et getkword incohérents
DenisHen a répondu à un(e) sujet de Aleck_Ultimate dans Débuter en LISP
Merci @didierpour ta réponse. Parfait, ça va me faciliter la vie cette astuce. Denis. -
Bonjour @didier. La dernière condition transforme la variable Choix en liste pour sortir du (while. Je sais que ça ne doit pas être très académique, mais je l'ai écris comme ça, car je comprends ce code. Denis
-
[Résolu] Retours de initget et getkword incohérents
DenisHen a répondu à un(e) sujet de Aleck_Ultimate dans Débuter en LISP
Cela signifie qu'on peut avoir un (initget de ce type ? (initget "1 2 3") (setq Choix (getkword "\nChoix de l'option [1-Ajouter/2-Modifier/3-Supprimer] : ")) -
Décalé à gauche et droite en 1 seul clic
DenisHen a répondu à un(e) sujet de willy95 dans Débuter en LISP
Je pensais à des variables "connues" d'AutoCAD, comme OSNAP, ou OSMODE... -
Bonjour @(gile) et merci pour ton aide. Le retour à la touche [ENTRER] est nil. Je pense avoir trouvé, mais je ne trouve pas le (setq Choix "Valeur") très élégant : (defun c:DH_TestInitGet ( / Choix) (setq Choix "Valeur") (while (/= Choix nil) (initget "Saisie Épaisseur Type Niveau") (setq Choix (getkword "\nChoix de l'option [Saisie/Épaisseur/Type/Niveau] : ")) (cond ((= Choix "Saisie") (princ "\nChoix : Saisie")) ((= Choix "Épaisseur") (princ "\nChoix : Épaisseur")) ((= Choix "Type") (princ "\nChoix : Type")) ((= Choix "Niveau") (princ "\nChoix : Niveau")) ) ;_ Fin de cond ) ;_ Fin de while (princ) ) Je ne sais pas si j'ai la bonne solution, mais je pense avoir trouvé une parade, mais pas plus élégante pour cela : (defun c:DH_TestInitGet ( / Choix) (while (/= (type Choix) 'LIST) (initget "Saisie Épaisseur Type Niveau") (setq Choix (getkword "\nChoix de l'option [Saisie/Épaisseur/Type/Niveau] : ")) (cond ((= Choix "Saisie") (princ "\nChoix : Saisie")) ((= Choix "Épaisseur") (princ "\nChoix : Épaisseur")) ((= Choix "Type") (princ "\nChoix : Type")) ((= Choix "Niveau") (princ "\nChoix : Niveau")) (T (setq Choix '("Sortie"))) ) ;_ Fin de cond ) ;_ Fin de while (princ) ) ;_ Fin de defun Encore merci pour ton aide. Denis.
-
Salut @(gile) et merci de me répondre. Je n'arrive pas à savoir quelle est la réponse si je fais [ENTRER] Mais je viens de voir (dans ton merveilleux "Introduction a AutoLISP") une sorte de "Else" (T...), devrais-je fouiller par là ? Encore merci pour ton aide.
-
Décalé à gauche et droite en 1 seul clic
DenisHen a répondu à un(e) sujet de willy95 dans Débuter en LISP
Donc, je viens de penser à un trus, on peut stocker de vrais variables ? Qui éviterait d'avoir un gabarit "pollué" pas des calques ou des blocs... -
Bonjour à la communauté. J'ai un (initget avec plusieurs choix. Mais quand j'en choisi un, le prompteur ne revient pas au choix : (defun c:DH_TestInitGet () (initget 1 "Saisie Épaisseur Type Niveau") (setq Choix (getkword "\nChoix de l'option [Saisie/Épaisseur/Type/Niveau] : ")) (cond ((= Choix "Saisie") (princ "\nChoix : Saisie")) ((= Choix "Épaisseur") (princ "\nChoix : Épaisseur")) ((= Choix "Type") (princ "\nChoix : Type")) ((= Choix "Niveau") (princ "\nChoix : Niveau")) ) ;_ Fin de cond ) ;_ Fin de defun J'ai trouvé un début de solution que j'ai trouvé sur "Google est mon ami" avec un (while : (defun c:DH_TestInitGet () (while (/= (type Choix) 'LIST) (initget 1 "Saisie Épaisseur Type Niveau") (setq Choix (getkword "\nChoix de l'option [Saisie/Épaisseur/Type/Niveau] : ")) (cond ((= Choix "Saisie") (princ "\nChoix : Saisie")) ((= Choix "Épaisseur") (princ "\nChoix : Épaisseur")) ((= Choix "Type") (princ "\nChoix : Type")) ((= Choix "Niveau") (princ "\nChoix : Niveau")) ) ;_ Fin de cond ) ;_ Fin de while ) ;_ Fin de defun Mais avec ce code, je n'arrive pas à sortir du (while. Il y a bien la solution d'ajouter une option "Sortie", mais est-il possible de sortir de la bouble par un [ENTRER] ? J'ai trouvé d'autres codes, mais que je ne comprends pas. Bien à toi la communauté. Denis.
-
[Résolu] (tblsearch "layer", mais en majuscule...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Merci à vous deux pour votre aide. J'avais mal lu l'aide de (tblsearch et pas compris (tblnext. Tout fonctionne parfaitement maintenant. Encore merci à vous deux. -
[Résolu] (tblsearch "layer", mais en majuscule...
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut @(gile)et merci pour ton aide. En fait, je cherche juste s'il y a au moins un calque contenant ce nom. Pour les caractères spéciaux dans les noms de calques tcomme pour le reste), je leur ai déjà dis. -
Bonjour à la communauté. Je cherche avec un (tblsearch le nom des calque pour le comparer à une variable. Mais mes collègues ne travaillent pas tous de la même façon. Certain crééent leurs calques en majuscule uniquement, d'autres non. Exemple, un créera le calque "PATATI.....BETON ARME (HACHURE)...", un autre "Patata...Béton armé (SymboleHachure)...".... Donc, je cherche "*BÉTON*" ou "*BETON*", mais je n'arrive pas à mettre le (tblserch en majuscule (ou en minuscule), pour être certain de trouver. Comment faire... Une liste peut-être ?
-
Décalé à gauche et droite en 1 seul clic
DenisHen a répondu à un(e) sujet de willy95 dans Débuter en LISP
Je viens de relire le sujet. Donc, setenv se stock dans la base de registre ? Curieux... C'est donc accessible entre plusieurs cessions AutoCAD, même après redémarrage de Windows ? -
Décalé à gauche et droite en 1 seul clic
DenisHen a répondu à un(e) sujet de willy95 dans Débuter en LISP
Coucou @Luna. Merci pour ces précisions, j'en prend bien note... Mais effectivement, mes valeurs ne sont stockées que pour un et un seul dessin. Mais je garde (setenv) et (getenv) en tête, au cas où... Encore merci à toi. Bisous. Denis... -
[Résolu] Comment "joindre" un jeu de sélection ?
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour à la communauté. J'ai fini par trouvé une vieille réponse de @(gile)dans un sujet de 2008 (ici), si ça intéresse quelqu'un : (vl-cmdf "_.pedit" (entlast) "_join" jspoly "" "") -
Bonjour à la communauté. Voilà, je dessine plusieurs polylignes que je mets dans un jeu de séléction que j'initialise au début avec : (setq jspoly (ssadd)) Ensuite, j'ajoute les polylignes dans jspoly après leur création : (setq jspoly (ssadd (entlast) jspoly)) Et je fini par joindre le tout pour créer une polyligne afin de la hachurer ensuite, cette polyligne (issue de la commande "joindre") devrait être fermée (physiquement) : (command "joindre" jspoly "") Mais rien ne se joint, je n'arrive donc pas à hachurer cette polyligne. J'ai essayé un truc dans ce genre mais sans résultat :(command-s "_.pedit" "_multiple" jspoly "" "_join" "" "") (command-s "_.pedit" "_multiple" jspoly "" "_join" "" "") Si quelqu'un a une idée, un conseil, je suis preneur. Bien à toi, la communauté.
