Arcasdk
Membres-
Compteur de contenus
279 -
Inscription
-
Dernière visite
À propos de Arcasdk
- Date de naissance 31/08/1981
Profile Information
-
Gender
Male
-
Location
Switzerland
Arcasdk's Achievements
-
Merci JPhil pour ta réponse, Effectivement on ne met pas à jour tous les jours une palette d'outil, mais plutôt que d'expliquer à chacun une procédure pas forcément simple à des utilisateurs qui ne sont pas forcément dessinateur au plus ce sera simple et au mieux se sera. La mise à jour des palettes se fera effectivement comme ça Oui, c'est ce que l'on cherche à faire. Nous voulons que sur chaque poste, tout le monde ait la même arborescence dans les groupes de palette et uniquement celles que nous utilisons et enlever (rapidement) celles de base.
-
Bonjour à tous, Nous rencontrons des difficultés avec la gestion des palettes et groupes de palette. Toute une série de palette vient d'être créée dans notre service et doit être déployée à chaque utilisateur d'Autocad. Nous avons une routine qui change "l'emplacement des fichiers de palettes d'outils" et de "palettes de création" et les nouvelles palettes sont chargées. Mais nous nous apercevons qu'il reste toujours d'anciennes palettes que nous aimerions retirer sans devoir obliger chacun des utilisateurs à le faire manuellement et une par une. Est ce qu'il existe une commande LISP qui affiche la liste des palettes chargées et une autre qui peut les retirer du panneau "Personnaliser les palette \ Groupe de palette" (vla-delete-grouppalette ??) Nous avions bien essayé de résoudre ce problème en diffusant à l'ensemble des collaborateurs un profil .arg, cela fonctionne bien au niveau des palettes et groupes de palette mais bien entendu, cela change également les préférences utilisateurs de chacun. Une idée pour nous aider? Grand Merci
-
Non, rien de tout cela, mais donc c'est ptet ça la parade, c'est d'écrire la couleur souhaitée dans le textString. non?
-
Merci Gégé, ça ne fonctionne pas à chaque fois mais je vais voir ce que je peux faire. Merci beaucoup en tout cas.
-
Bonjour en lançant un (vlax-dump-object (vlax-ename->vla-object (car (entsel))) T)) sur un AcDbMLeader, je n'ai pas pu trouver la propriété qui gère la couleur du texte textcolor (comme l'on pourrait la trouver dans une côte linéaire ou alignée par exemple). Y a t'il un moyen rapide de gérer la couleur d'un multileader? Merci
-
Bonjour, j'aimerai connaitre la commande qui permet de lancer dans une routine lisp/vlisp pendant l'exécution d'une routine lisp/vlisp. C'est une macro qui se trouve dans le même dossier et qui a déjà été chargé à l'ouverture du plan. Merci beaucoup
-
Merci (Gile), d'accord. Dans mon cas, je renomme les "dimstyle" et "mleaderstyle" standard pour pouvoir insérer dans mon dessin courant, sous forme de bloc (que je supprime en fin de routine), une cote linéaire et une ligne de repère multiple qui sont en style "standard". Ainsi j'ai dans mon plan les styles que j'ai l'habitude d'utiliser. Voila, aujourd'hui j'ai réussi à faire ce que je voulais. On verra à la longue si je n'ai pas de surprise. Ce n'est certainement pas la méthode la plus simple pour le faire mais j'ai progresser en code ;-). (defun c:std (/ dirclq) (command "-purger" "tout" "tout" "o") (vl-load-com) ;RENOMME LE DIMSTYLE STANDARD EN STANDARDOLD (if (tblsearch "DIMSTYLE" "Standard") (progn (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) (setq dimx (vla-get-Dimstyles doc)) (setq item (vla-item dimx "Standard")) (if (= (vla-get-name item) "Standard") (vla-put-name item "StandardOld") ) (vla-regen doc acActiveViewport) (princ) (princ "Standard existe, Il sera renommé en StandardOld") (princ)) (princ "non, il n'existe pas") ) ;RENOMME LE MLEADERSTYLE STANDARD EN STANDARDOLD (setq dic (vla-get-dictionaries doc)) (vla-startundomark doc) (or (vl-catch-all-error-p (setq mle (vl-catch-all-apply 'vla-item (list dic "ACAD_MLEADERSTYLE")))) (vl-catch-all-error-p (setq sty (vl-catch-all-apply 'vla-item (list mle "Standard")))) (vla-put-name sty "StandardOld") ) (vla-endundomark doc) (princ) ;DEFINIR LA DESTINATION D'ENREGISTREMENT (if (eq dirclq nil) (setq dirclq (strcat lettreunite ":\\Std.dwg")) ) (setq pointins '(0 0 0)) (princ dirclq) (command "_.insert" dirclq pointins "" "" "") (setq elast (entlast)) (entdel elast) (setvar "TEXTSTYLE" "ARIAL") (setvar "CMLEADERSTYLE" "Standard") (if (tblsearch "DIMSTYLE" "Standard") (vla-put-activeDimstyle doc (vla-item (vla-get-Dimstyles doc) "Standard") ) ) (princ) ) Merci encore.
-
Merci à tous, Effectivement Patrick_35, ton lisp fonctionne. Il renomme complètement le style standard existant. Je ne comprend pas grand chose au langage utilisé mais ça marche. Bonne journée
-
Bonjour Giles et bonjour à tous, Dans la continuité de ce message, pourrais je avoir quelques conseils pour finaliser ma macro. Je travaille sur les styles de repère multiple. J'ai compris qu'on ne les trouve pas avec un tblsearch mais avec un dictsearch Ma macro a pour but de renommer un style de repère multiple Voici ma macro : (defun c:renSRM (/ main_dict mlead_sty sty_std) (setq main_dict (namedobjdict)) (setq mlead_sty (dictsearch (namedobjdict) "ACAD_MLEADERSTYLE")) (if (setq sty_std (dictsearch (cdr (assoc -1 mlead_sty)) "Standard")) (entmod (subst (cons 3 "StandardOld")(assoc 3 sty_std) sty_std)) (princ "Standard n'existe pas") ) ) En revanche je n'arrive pas à modifier le nom du style. J'ai l'impression que ça ne rafraîchi pas. Merci
-
Merci à tous
-
Merci (gile) pour l'optimisation et les précisions de langage. Je prends note. Vos réponses sont riches et très intéressantes. Quelle est la différence entre (vla-put-Lineweight ent acLnWtByLayer) et (vla-put-lineweight ent "-1") Merci
-
Ah oui...... donc finalement ni de foreach ou de mapcar..... Ça fonctionne. Merci beaucoup
-
Bonjour à tous, Toujours dans un souci de dessiner plus rapidement en évitant de balader la souris sur le mètre d'écran que je possède en cherchant désespérément le bouton, j'utilise une petite macro qui change le calque des entités sélectionnées via des noms de commande qui sont des numéros. Ma main quitte donc la souris 1 seconde et le tour est joué. Le problème c'est que cette macro s'allonge au fil du temps mais je pense qu'elle peut désormais se raccourcir en utilisant des fonctions telles que "foreach" ou peut être "mapcar". Des fonctions que je ne maîtrise pas encore bien. Voici un bout de mon code. Vous comprendrez que j'ai le même paragraphe pour chaque commande. (setq C0 "0") (setq C1 "AXES") (setq C2 "CACHE") (setq C3 "CARTOUCHE") (setq C4 "COTATION") (setq C5 "FIN") (setq C6 "HACHURES") (setq C7 "TEXTE") (setq 0p "PIPE") (setq 0e "Existant") (setq 0f "Fittings") ;Mettre le jeu de sélection dans le calque 0; (defun c:0 (/ doc js sel) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (vl-catch-all-apply 'vla-add (list (vla-get-layers doc) C0)) (and (setq js (ssget)) (progn (vlax-for ent (setq sel (vla-get-activeselectionset doc)) (vla-put-layer ent C0) (vla-put-color ent 256) (vla-put-linetype ent "ByLayer") (vla-put-lineweight ent "-1") ) (vla-delete sel) ) ) (sssetfirst nil js) (vla-endundomark doc) (command "regen") (princ) ) ;Mettre le jeu de sélection dans le calque AXE (defun c:1 (/ doc js sel) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (vl-catch-all-apply 'vla-add (list (vla-get-layers doc) C1)) (and (setq js (ssget)) (progn (vlax-for ent (setq sel (vla-get-activeselectionset doc)) (vla-put-layer ent C1) (vla-put-color ent 256) (vla-put-linetype ent "ByLayer") ) (vla-delete sel) ) ) (sssetfirst nil js) (vla-endundomark doc) (command "regen") (princ) ) etc... etc... etc... pour chaque "setq" en début de macro Merci de m'orienter. Bonne journée
-
Bonjour, Je suis content de trouver un sujet qui concerne mon problème. Effectivement, autocad ne garde plus en mémoire le style de nuage de révision. J'ai beau chercher une variable sur le site de REBCAO, je ne trouve rien qui gère "ce qui fonctionnait avant"! OK pour un LISP. Merci à plus.
-
[Résolu] Position du curseur dans un DCL
Arcasdk a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
Magnifique. Merci (gile) DDA: dialog{ label="Invite texte : DDA"; initial_focus="txdda"; spacer; :boxed_row{ label="Valeur du texte sélectionné"; :edit_box {key="txdda";edit_width=50;} spacer; } spacer; ok_cancel; }
