Arcasdk Posté(e) le 21 octobre 2013 Posté(e) le 21 octobre 2013 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 <IMG SRC=http://peronfrederic.free.fr/banniere.jpg></IMG> <a href=www.formu-lan.net>www.FormuLan.net</a>
zebulon_ Posté(e) le 8 novembre 2013 Posté(e) le 8 novembre 2013 Bonjour, les mleader, à l'image des cotes, sont des entités très complexes d'où le nombre phénoménal de vlax-put-property. Personnellement, je préfère faire un fichier dwg ou dwt qui contient le modèle de mleader (au 1:1) que je souhaite avoir et j'utilise le lisp (ouvrir_dessin_dbx) de patrick_35 qui permet d'ouvrir un fichier externe et d'en importer tout un tas de choses (styles de cotes, de mleader, de blocs etc...). Après je ne modifie que le facteur d'échelle du nouveau style de mleader. (defun create_mleaderstyle (ECH UNITS / MLeadName MLeadModel NOMFIC dbx dbxdic dbxMleaderStyle) (setq MleadName (strcat "CADSYS-MLEADER-" ECH)) (setq MleadModel "CADSYS-MLEADER-GABARIT") (if (not (member MLeadModel (MLeaderStyleList))) (progn (if (not (member MleadName (MLeaderStyleList))) (progn (setq NOMFIC (findfile (strcat "CADSYS-COT" UNITS ".DWG"))) (setq dbx (ouvrir_dessin_dbx NOMFIC)) (setq dbxdic (vla-item (vla-get-dictionaries dbx) "ACAD_MLEADERSTYLE" ) ) (setq dbxMleaderStyle (vla-item dbxdic MLeadModel)) (vla-put-scalefactor dbxMleaderStyle ECH) (vla-put-name dbxMLeaderStyle MleadName) (vla-CopyObjects Dbx (vlax-safearray-fill (vlax-make-safearray vlax-vbObject '(0 . 0)) (list dbxMLeaderStyle) ) (vla-item (vla-get-dictionaries AcDoc) "ACAD_MLEADERSTYLE") ) (vlax-release-object dbx) ) ) (setvar "CMLEADERSTYLE" MLeadName) ) (alert (strcat MLeadModel " présent dans le fichier")) ) ) les noms de styles sont évidemment à adapter. Je préfère cette façon de faire puisque dans le modèle dwt ou dwg on voit précisemment la "gueule" du style de mleader, puisq'il est représenté. Ensuite, il suffit que dans la version n+1 d'autocad, on te rajoute de nouvelles propriétés dans le style de mleader, pour que ton lisp devienne bancale. Sinon, pour répondre à ta question, peut-être que le bloc _tagcircle n'est pas présent dans le fichier et c'est cela qui fait planter ton lisp. AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
Arcasdk Posté(e) le 13 novembre 2013 Auteur Posté(e) le 13 novembre 2013 ok ok Merci <IMG SRC=http://peronfrederic.free.fr/banniere.jpg></IMG> <a href=www.formu-lan.net>www.FormuLan.net</a>
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant