Arcasdk
Membres-
Compteur de contenus
279 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Arcasdk
-
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; } -
Bonjour, j'aimerai savoir s'il est possible de forcer la position du curseur dans un edit_box par exemple à l'ouverture de la fenêtre DCL. Et peut être même, mettre en surbrillance le texte qui s'y trouve (dans l'edit_box) Ainsi, je ne suis pas obligé de reprendre ma souris à chaque fois pour cliquer dans le champs qui m'intéresse. Merci Bonne journée
-
ok ok Merci
-
Bonjour, je cherche à créer une ligne de repère multiple selon mes préférences avec en contenu, un bloc "_TagCircle" (celui de base utilisé par Autocad". Toute la macro se déroule bien sauf aux deux lignes qui sont séparées.... Quelqu'un peut m'éclairer s'il vous plait... (defun c:lmr (/ doc2 mls2 mlsdict2 ) (setq doc2 (vla-get-activedocument (vlax-get-acad-object))) (setq mlsdict2 (vla-item (vla-get-dictionaries doc2) "ACAD_MLEADERSTYLE")) (setq mls2 (vlax-invoke mlsdict2 'addobject "LRM-REP" "AcDbMLeaderStyle")) (vlax-put-property mls2 'AlignSpace 1) (vlax-put-property mls2 'Annotative 0) (vlax-put-property mls2 'ArrowSize 2.5) (vlax-put-property mls2 'BlockConnectionType 1) (vlax-put-property mls2 'BlockRotation 0.0) (vlax-put-property mls2 'BlockScale 1.0) (vlax-put-property mls2 'BreakSize 1.0) (vlax-put-property mls2 'ContentType 1) (vlax-put-property mls2 'ContentBlockType 2) (vlax-put-property mls2 'ContentBlockName "_TagCircle") (vlax-put-property mls2 'Description "LRM-REP") (vlax-put-property mls2 'DoglegLength 2.5) (vlax-put-property mls2 'DrawLeaderOrderType 0) (vlax-put-property mls2 'DrawMLeaderOrderType 1) (vlax-put-property mls2 'EnableBlockRotation -1) (vlax-put-property mls2 'EnableBlockScale -1) (vlax-put-property mls2 'EnableDogleg -1) (vlax-put-property mls2 'EnableFrameText 0) (vlax-put-property mls2 'EnableLanding -1) (vlax-put-property mls2 'FirstSegmentAngleConstraint 0) (vlax-put-property mls2 'LandingGap 1) (vlax-put-property mls2 'LeaderLineType 1) (vlax-put-property mls2 'LeaderLineTypeId "ByLayer") (vlax-put-property mls2 'LeaderLineWeight -1) (vlax-put-property mls2 'MaxLeaderSegmentsPoints 2) (vlax-put-property mls2 'name "LRM-REP") (vlax-put-property mls2 'ScaleFactor 1) (vlax-put-property mls2 'SecondSegmentAngleConstraint 0) (vlax-put-property mls2 'TextAlignmentType 1) (vlax-put-property mls2 'TextAngleType 1) (vlax-put-property mls2 'TextHeight 2.5) (vlax-put-property mls2 'TextLeftAttachmentType 1) (vlax-put-property mls2 'TextRightAttachmentType 1) (vlax-put-property mls2 'TextString "") ) MERCI :D
-
Après 3 heures de recherche, je tombe enfin sur le post qui me donne ce que je cherche..... MERCI
-
Cela fonctionne à merveille, Merci VDH-Bruno !
-
Bonjour, bonjour, j'ai écris une petite routine qui me permet de créer un style de côte qui me va bien. J'ai cherché un peu sur le net et j'ai choisi la méthode du "ENTMAKE" après avoir écris une liste. (LIST (CONS 0 "DIMSTYLE") (CONS 100 "AcDbSymbolTableRecord") (CONS 100 "AcDbDimStyleTableRecord") (CONS 2 "COT 1-1") (CONS 70 0) (CONS 3 "") (CONS 4 "") (CONS 5 "") (CONS 6 "") (CONS 7 "") (CONS 40 1.0).....) Je ne sais pas si c'est le plus rapide mais si un pro du vlisp connait quelque chose de mieux je serai ravi. Mais la raison de mon post est que je voudrai faire une boucle sur cette liste pour créer plusieurs style de cote en ne changeant que le nom (code dxf 2) et le facteur d'échelle (code dxf 40). En effet je voudrai plusieurs style de côte avec des noms comme (COT 1-10, COT 1-20, COT 1-5 etc...) Je pense utilisé un (while (=/ nil (.... tant que la liste de nom n'est pas écoulé mais je me demande si un 'mapcar, lambda' ou un 'foreach' (fonction que je n'ai jamais compris) ne pourrais pas faire l'affaire. Mon code est un peu long à cause de la multitude de code dxf qui sont nécessaire pour créer un style de cote. (IF (= nil (TBLSEARCH "DIMSTYLE" "COT 1-1")) (PROGN (SETQ res$ (LIST (CONS 0 "DIMSTYLE") (CONS 100 "AcDbSymbolTableRecord") (CONS 100 "AcDbDimStyleTableRecord") (CONS 2 "COT 1-1") (CONS 70 0) (CONS 3 "") (CONS 4 "") (CONS 5 "") (CONS 6 "") (CONS 7 "") (CONS 40 1.0) (CONS 41 2.5) (CONS 42 1.0) (CONS 43 1.0) (CONS 44 1.0) (CONS 45 0.0) (CONS 46 0.0) (CONS 47 0.0) (CONS 48 0.0) (CONS 140 2.5) (CONS 141 1.0) (CONS 142 0.0) (CONS 143 25.4) (CONS 144 1.0) (CONS 145 0.0) (CONS 146 1.0) (CONS 147 1.0) (CONS 71 0) (CONS 72 0) (CONS 73 0) (CONS 74 0) (CONS 75 0) (CONS 76 0) (CONS 77 1) (CONS 78 12) (CONS 79 3) (CONS 170 0) (CONS 171 2) (CONS 172 0) (CONS 173 0) (CONS 174 0) (CONS 175 0) (CONS 176 256) (CONS 177 256) (CONS 178 7) (CONS 179 4) (CONS 270 2) (CONS 271 4) (CONS 272 4) (CONS 273 2) (CONS 274 2) (CONS 275 0) (CONS 276 0) (CONS 277 2) (CONS 279 0) (CONS 280 0) (CONS 281 0) (CONS 282 0) (CONS 283 1) (CONS 284 12) (CONS 285 0) (CONS 286 0) (CONS 287 0)) (CONS 288 1) (CONS 289 3)))) ) ) ) (ENTMAKE res$)) Si quelqu'un peu m'éclairer ou m'en dire plus sur ce qu'il aurait fait. Un grand merci
-
Adaptatif reste grisé pour un assemblage
Arcasdk a répondu à un(e) sujet de mouais.mouais dans Inventor
Merci, c'est ce que je cherchais ;-) -
Trouver une entités avec son nom d'entité
Arcasdk a répondu à un(e) sujet de Arcasdk dans Débuter en LISP
Ah oui, pas mal du tout le handent, je ne connaissais pas. Merci Didier. -
Bonjour est il possible de retrouver une entité dans un dessin juste avec son nom d'entité? ((-1 . <Nom d'entité: 7ffffb11130>) (0 . DIMENSION) (330 . <Nom d'entité: 7ffffbaeec0>) (5 . 4C5B) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . Cote (ISO)) (100 . AcDbDimension) (280 . 0) (2 . *D116) (10 33936.0 25163.7 0.0) (11 33205.2 24915.6 0.0) (12 0.0 0.0 0.0) (70 . 165) (1 . <>) (71 . 1) (72 . 1) (41 . 1.0) (42 . 0.785398) (73 . 0) (74 . 0) (75 . 0) (52 . 0.0) (53 . 0.0) (54 . 0.0) (51 . 0.0) (210 0.0 0.0 1.0) (3 . Par défaut (ISO)) (100 . AcDb3PointAngularDimension) (13 35463.0 19514.7 0.0) (14 35427.7 19500.0 0.0) (15 35463.0 19464.7 0.0) (16 0.0 0.0 0.0) (40 . 0.0) (50 . 0.0)) (-1 . <Nom d'entité: 7ffffb11130>) Merci
-
Rapport d\'erreur qui stop le Lisp
Arcasdk a répondu à un(e) sujet de Arcasdk dans Pour aller plus loin en LISP
Merci bien Patrick35. en fouillant et avec tes explications, j'ai compris qu'il fallait changer toutes mes syntaxes: (setq xl_feuille (xlp-get-item xl_classeur "Feuil1")) par (setq xl_feuille (vlax-get-property xl "Activesheet")) les (setq rng_dn (xlp-get-range xl_feuille cell_diam)) par (setq rng_dn (vlax-get-property xl "range" cell_diam)) et les (setq val_dn (vlax-variant-value (xlp-get-value rng_dn))) par (setq val_dn (vlax-variant-value (vlax-get-property rng_dn 'value))) voili voilou, a bientôt.
