Aller au contenu

Création d'un type de ligne


Kalleb

Messages recommandés

Bonjour,

 

J'ai un type de ligne clôture (n°1) qui est généré automatiquement quand je charge mon gabarit Autocad et j'aurais aimé en rajouter un autre (n°2) sans passer par la fonction habillage clôture de covadis.

Quand j'essaye de créer le type de ligne avec la fonction -typeligne j'ai un message d'erreur "Nombre incorrect ou continuation erronée"

Si une âme charitable peut m’aider, je remercie d'avance.

Capture.JPG.58bdb388e24a23df53711104bed439e5.JPG

 

Ci-joint le DWG si ça peut aider avec le shx de la 1ère ligne.

 

 

Clotures.dwg croix.shx

Lien vers le commentaire
Partager sur d’autres sites

Il y a 3 heures, Curlygoth a dit :

Si tu as besoin d'un programme qui génère tes types de lignes ^^

Ouaiiii mais ça gratos direct sur le forum stp 😁

AutoCAD Map 3D 2023 (26.0.37.2 base T.53.0.0)
Covadis 18.0 + AutoPiste
Windows 11 Famille v.21H2 - 64 bits

Toujours à l'affût des bonnes astuces

Lien vers le commentaire
Partager sur d’autres sites

Si tu veux un type de ligne avec une forme (shx), je peux te proposer ceci:

Tu copie-colle ce qui suit directement en ligne de commande, il va s'occuper de tout; créer le shape (.shp), le compiler (.shx) et écrire le fichier de type de ligne (.lin) et le rendre disponible dans le dessin.

((lambda ( / f_shp f_lin doc)
  (if (not (findfile "rond_plein.shp"))
    (progn
      (setq f_shp (open (strcat (getvar "ROAMABLEROOTPREFIX") "support\\rond_plein.shp") "w"))
      (write-line "*128,66,RONDPLEIN" f_shp)
      (write-line "2,3,10,010,1,10,(1,000),2,010,1,10,(2,000),2,010,1,10,(3,000),2,010,1,10," f_shp)
      (write-line "(4,000),2,010,1,10,(5,000),2,010,1,10,(6,000),2,010,1,10,(7,000),2,010,1,10," f_shp)
      (write-line "(8,000),2,010,1,10,(9,000),2,010,1,10,(10,000),2,3,10,0" f_shp)
      (close f_shp)
    )
  )
  (command "_.compile" (strcat (getvar "ROAMABLEROOTPREFIX") "support\\rond_plein.shp"))
  (if (not (tblsearch "STYLE" ""))
    (entmakex
      '(
        (0 . "STYLE")
        (100 . "AcDbSymbolTableRecord")
        (100 . "AcDbTextStyleTableRecord")
        (2 . "")
        (70 . 1)
        (40 . 0.0)
        (41 . 1.0)
        (50 . 0.0)
        (71 . 0)
        (42 . 2.5)
        (3 . "rond_plein.shx")
        (4 . "")
       )
    )
  )
  (entmake
    (list
      '(0 . "LTYPE")
      '(100 . "AcDbSymbolTableRecord")
      '(100 . "AcDbLinetypeTableRecord")
      '(2 . "DotsLine")
      '(70 . 0)
      '(3 . "pointillé shx . . . .")
      '(72 . 65)
      '(73 . 2)
      '(40 . 1.0)
      '(49 . 1.0)
      '(74 . 4)
      '(75 . 128)
      (CONS 340 (TBLOBJNAME "STYLE" ""))
      '(46 . 0.1)
      '(50 . 0.0)
      '(44 . 0.0)
      '(45 . 0.0)
      '(49 . 0.0)
      '(74 . 0)
    )
  )
  (if (not (findfile "DotsLine.lin"))
    (progn
      (setq f_lin (open (strcat (getvar "ROAMABLEROOTPREFIX") "support\\DotsLine.lin") "w"))
      (write-line "*DotsLine,cloture shx . . . ." f_lin)
      (write-line "A,1,[RONDPLEIN,rond_plein.shx,x=0,s=.1],0" f_lin)
      (close f_lin)
    )
  )
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (if
    (and
      (not
        (vlax-for item (vla-get-linetypes doc)
          (if (= (strcase (vla-get-name item)) (strcase "DotsLine")) T)
        )
      )
      (vl-catch-all-error-p
        (vl-catch-all-apply
          'vla-load
          (list (vla-get-Linetypes doc) "DotsLine" "DotsLine.lin")
        )
      )
    )
    nil
    T
  )
  (princ "\nCréation de Type de Ligne \"DotsLine\" effectué!")
  (prin1)
))

 

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

il y a le super site de Didier https://www.da-code.fr/les-types-de-ligne/

moi j'ai un générateur qui entre des donnée dans .lin qui est dans un dossier ressources\TypeLin

et il faut 1 à 18 caractère max

pour les formes complexes, j'utilise un style de texte différents voir le site DA-CODE ou je ne pourrais pas mieux l'expliquer ^^

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Pour éviter de perdre ses définitions PERSO, je conseille de créer son propre fichier .LIN. A titre d'exemple voici la définition du type ligne AXE et le type de ligne COMPLEXE GAZ...

*AXES,Centre ____ _ ____ _ ____ _ ____ _ ____ _ ____
A, 31.75, -6.35, 6.35, -6.35 

 

*GAZ,---- Gaz ---- Gaz ----
A,12.7,-5.08,["GAZ",STANDARD,S=2.54,U=0.0,X=-2.54,Y=-1.27],-6.35

 

Valeur positive = TRAIT

Valeur négative = ESPACE

Entre crochet = Définition du TEXTE

 

ATTENTION, si pour les types lignes COMPLEXES vous voulez utiliser un STYLE DE TEXTE spécifique, il faut impérativement que le STYLE DE TEXTE soit présent dans le dessin...

 

On peut utiliser des fichiers SHX, mais le problème on a du mal à connaitre le nom des symboles...

 

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Lien vers le commentaire
Partager sur d’autres sites

Pour compléter REBCAO

Je joins en plus mon fichier .LIN qui vas avec le DWG posté plus haut.

CREATION TYPE DE LIGNE
-------------------------------------------------------------------------------------------------------------
EAU_CHAUDE_EC,Eau chaude EC ---- EC ---- EC ---- EC ----
A,12.7,-5.08,["EC",STANDARD,S=2.54,U=0.0,X=-2.54,Y=-1.27],-5.08
-------------------------------------------------------------------------------------------------------------
12.7  = longueur de la partie visible du trait (cette longueur est multipliée par l’échelle globale x échelle de type de ligne de l’objet)

-5.08 = longueur de l’espace vide  car valeur négative.
Problème quel chiffre utiliser ?
Utilisez 2.54 par caractère ; soit 5.08 pour 2 ;  7.62 pour 3 ;  10.16 pour 4 …

[la définition du texte entre crochets]

"EC",= le texte visible dans le trait

Standard = nom du style de texte , vérifiez la police appliquée ! utilisez ARIAL.ttf ou ROMANS.SHX
Si aucun style n'est défini, AutoCAD LT utilise le style courant.

S=2.54  = échelle appliquée au texte

U=0 ; = Angle du texte ici 0 donc texte toujour horizontal

R= indique la rotation relative dans les exemples ci-dessous R est absent par défaut angle = 0

Position XY du texte.
X= -2.54 = position en X du départ du texte
Y = -1.27 = position en Y

-5.08 : créer un espace après le texte

 

@SF-Linetype.lin

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é