Aller au contenu

Chargement de type de ligne par macro


jifi

Messages recommandés

Salut à tous,

 

Voici mon problème :

 

J'ai créé un bouton avec la macro suivante :

^C^C_.-LAYER;_T;A_DEMOLIR;_M;A_DEMOLIR;_C;30;;_LT;CACHE;;;_.-LINETYPE;_S;DUCALQUE;;_.-COLOR;DUCALQUE;

 

Tout fonctionne très bien, excepté le chargement du type de ligne.

En effet, malgré le démarrage d'un nouveau dessin à partir du fichier gabarit acadiso.dwt, lorsque j'exécute cette macro, le type de ligne chargé provient du fichier AutoCAD.lin alors que je souhaite qu'il provienne du fichier acadiso.lin.

 

Merci d'avance à ceux qui pourront m'aider...

 

@plus

Jean-Philippe - Formateur / Dessinateur sur AutoCAD et MEP

http://www.git-cad.ch

Lien vers le commentaire
Partager sur d’autres sites

Salut Christian,

 

Oui, les valeurs que tu mentionnes sont à 1.

Je les paramètre dans un fichier mnl comme indiqué ci-dessous

 

(setvar "mbuttonpan" 1)
(setvar "mirrtext" 0)
(setvar "psltscale" 0)
(setvar "measurement" 1)
(setvar "measureinit" 1)
(setvar "insunits" 5)
(setvar "insunitsdefsource" 5)
(setvar "insunitsdeftarget" 5)
(setvar "treedepth" 3020)
(setvar "sslocate" 0)
(setvar "ssmautoopen" 0)
(setvar "demandload" 2)

 

 

Jean-Philippe - Formateur / Dessinateur sur AutoCAD et MEP

http://www.git-cad.ch

Lien vers le commentaire
Partager sur d’autres sites

  • 3 mois après...

Salut,

 

Merci pour l'info, ça fonctionne... :thumbup:

 

J'avai essayé cette fonction manuellement, mais ça ne fonctionnait pas, j'avais la boîte de dialogue Sélectionner un type de ligne qui s'ouvrait.

Par contre, dans une ligne de macro, pas de problème.

 

Reste cependant à régler un problème.

 

Si le type de ligne n'existe pas, la macro est la suivante

^C^C-typeligne;CH;CACHE;acadiso.lin[surligneur][b];;[/b][/surligneur]

 

Si le type de ligne existe déjà, la moacro est la suivante

^C^C-typeligne;CH;CACHE;acadiso.lin[surligneur][b];;;[/b][/surligneur]

 

Y a-t-il un moyen de dire à AutoCAD que si le type de ligne existe il doit valider une fois de plus ?

 

Je viens de trouver une solution... :cool:

^C^C-typeligne;CH;CACHE;acadiso.lin[surligneur][b];;^C^C[/b][/surligneur]

 

 

@plus

 

 

[Edité le 21/8/2007 par jifi]

Jean-Philippe - Formateur / Dessinateur sur AutoCAD et MEP

http://www.git-cad.ch

Lien vers le commentaire
Partager sur d’autres sites

  • 14 ans après...

Bonjour à la communauté.

J'aimerais faire exactement la même chose, mais mon type de ligne n'existe pas dans mon dessin et il se trouve dans

D:\Rep1\Rep2\FichTL.lin

Bien à toi, la communauté.

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

Hors sujet mais ca va t'interresser en VBA :

 

Sub Charge_Type_ligne(NOM_TYPE_LIGNE as string, Optional fich = "acad.lin")

'Fonction pour verifier que le type de ligne existe ou non
'fin de fonction

If "" = NOM_TYPE_LIGNE Or NOM_TYPE_LIGNE= "Continuous" Then Exit Sub
    On Error Resume Next
    ThisDrawing.Linetypes.load NOM_TYPE_LIGNE, fich
If Err Then
    ThisDrawing.Utility.prompt "Type de Ligne non chargée: " & NOM_TYPE_LIGNE & "'" & vbCr & Err.DESCRIPTION
Else
End If
End Sub

 

La Variable Fich doit être un chemin complet 😉

Lien vers le commentaire
Partager sur d’autres sites

Salut @Curlygoth.

Effectivement, ça m'intéresse, mais dans une autre mesure...

Pour l'instant, je cherche à charger un type de ligne depuis un fichier inconnu d'AutoCAD dans un fichier Script.

Mais je garde ton code dans un tiroir, car je sais qu'il me servira...

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

Citation

Pour l'instant, je cherche à charger un type de ligne depuis un fichier inconnu d'AutoCAD dans un fichier Script.

ben il y a un code en lisp qui fait ça : (ça extrait le code de la ligne)

(defun c:model_typline ( /
  ent ent_dxf nam_tl def_tl prec m_adir m_abas nam_lin def_lin nbr_lin w_line lg_tiret tp_cpx cod_shx
  ss_ent styl_tl file_shx scal_motif rot_motif x_motif y_motif str_motif)
  (setvar "cmdecho" 0)
  (while (not (setq ent (entsel "\nChoix du TypeLigne modèle: "))))
  (setq ent_dxf (entget (car ent)) nam_tl (assoc 6 ent_dxf))
  (cond
    ((and (cdr nam_tl) (/= (cdr nam_tl) "ByLayer") (/= (cdr nam_tl) "ByBlock"))
      (initget 4)
      (setq
        def_tl (entget (tblobjname "Ltype" (cdr nam_tl)))
        prec (getint (strcat "\nPrécision décimale désirée<" (itoa (getvar "LUPREC")) ">: "))
      )
      (if (not prec) (setq prec (getvar "LUPREC")))
      (setq
        m_adir (getvar "angdir")
        m_abas (getvar "angbase")
        nam_lin (strcat "*" (cdr (assoc 2 def_tl)))
        def_lin (strcat "," (cdr (assoc 3 def_tl)))
        lg_lin (cdr (assoc 40 def_tl))
        nbr_line (cdr (assoc 73 def_tl))
        w_line "\nA"
      )
      (setvar "angdir" 0)
      (setvar "angbase" 0)
(textscr)
(princ (strcat "\n" nam_lin def_lin))
(princ w_line)
      (while (/= (caar def_tl) 49)
        (setq def_tl (cdr def_tl))
      )
      (while def_tl
        (cond
          ((eq 49 (caar def_tl))
            (setq lg_tiret (cdar  def_tl))
(princ (strcat "," (rtos lg_tiret 2 prec)))
          )
          ((eq 74 (caar def_tl))
            (setq tp_cpx (cdar  def_tl))
          )
          ((eq 75 (caar def_tl))
            (setq cod_shx (cdar  def_tl))
(cond
  ((eq tp_cpx 2)
(princ (strcat ",[\"" (cdr (assoc 9 def_tl)) "\""))
  )
  ((eq tp_cpx 4)
(princ ",[*")
  )
)
          )
          ((eq 340 (caar def_tl))
            (setq ss_ent (entget (cdr (assoc 340  def_tl))))
            (if ss_ent
              (setq
                styl_tl (cdr (assoc 2 ss_ent))
                file_shx (cdr (assoc 3 ss_ent))
              )
              (setq styl_tl "" file_shx " ")
            )
(if (eq styl_tl "")
(princ (strcat (itoa cod_shx) "," file_shx))
(princ (strcat "[" nam_lin "," styl_tl))
)
          )
          ((eq 46 (caar def_tl))
            (setq scal_motif (cdr (assoc 46 def_tl)))
(princ (strcat ",S=" (rtos scal_motif 2 prec)))
          )
          ((eq 50 (caar def_tl))
            (setq rot_motif (cdr (assoc 50 def_tl)))
(princ (strcat ",R=" (angtos rot_motif 0 prec)))
          )
          ((eq 44 (caar def_tl))
            (setq x_motif (cdr (assoc 44 def_tl)))
(princ (strcat ",x=" (rtos x_motif 2 prec)))
          )
          ((eq 45 (caar def_tl))
            (setq y_motif (cdr (assoc 45 def_tl)))
(princ (strcat ",y=" (rtos y_motif 2 prec) "]"))
          )
          ((eq 9 (caar def_tl))
            (setq str_motif (cdr (assoc 9 def_tl)))
          )
        )
        (setq def_tl (cdr def_tl))
      )
      (setvar "angdir" m_adir)
      (setvar "angbase" m_abas)
    )
    (T (princ "\nImpossible de récuperer le type de ligne de l'objet pointé."))
  )
  (setvar "cmdecho" 1)
  (prin1)
)

 

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Bonsoir @(gile), et merci pour ces liens, mais je me perdais dans les éventuels changements des slash et anti-slash, et/ou leur inversion, j'avais un vague souvenir de ce changement dans certaines situations...
Encore merci à toi...
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

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é