Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous,

 

J'aimerais créer un type de ligne via le LiSP sans pour celà passer par un fichier.lin et sans passer par (command...

 

Voici le type de ligne

*AEP,AEP ----AEP----AEP----AEP----AEP----AEP----AEP--
A,20,-1.3,["AEP",TypeLign,S=1.3,R=0.0,X=-0.65,Y=-0.65],-3

TypeLign serait un style de texte basé sur Simplex.shx réservé au textes dans les lignes...

 

 

D'avance, merci à tous.

 

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)

Posté(e)

J'ai fais çà, mais je ne sais pas trop quoi en faire, mais on ne sait jamais...

(defun c:CreeTypeLign (NomType Police /)
 (entmakex
   (list
     (cons 0 "STYLE")
     (cons 5 "40")
     (cons 100 "AcDbSymbolTableRecord")
     (cons 100 "AcDbLinetypeTableRecord")
     (cons 2 NomType)
     (cons 70 0)
     (cons 3 "AEP") ; Texte descriptif du type de ligne
     (cons 72 65) ; Code d'alignement ; la valeur est toujours 65, le code ASCII pour A
     (cons 73 ??) ; Nombre d'éléments du type de ligne
     (cons 40 ??) ; Longueur totale du motif
     (cons 49 ??) ; Longueur du tiret, du point ou de l'espace (une entrée par élément)
     (cons 74 ??) ; Type d'élément d'un type de ligne complexe (un par élément) : La valeur par défaut est 0 (pas de forme/texte imbriqué)
     (cons 75 ??) ; Numéro de forme (un par élément) si le code 74 indique une forme imbriquée
     (cons 340 ??) ; Pointeur de l'objet STYLE (un par élément si le code 74 > 0)
     (cons 46 ??) ; S = Valeur d'échelle (facultatif) ; les entrées multiples sont admises. 
     (cons 50 ??) ;Valeur de rotation R = (relative) ou A = (absolue) en radians de la forme ou du texte incorporé ; une par élément si le code 74 spécifie une forme ou une chaîne de texte incorporée
     (cons 44 ??) ;X = Valeur de décalage de X (facultatif) ; les entrées multiples sont admises 
     (cons 45 ??) ;Y = Valeur de décalage de Y (facultatif) ; les entrées multiples sont admises
     (cons 9 ??) ;Chaîne de texte (une par élément si code 74 = 2)
   ) ;_ Fin:list
 ) ;_ Fin:entmake
)

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)

  • 7 mois après...
Posté(e)
sans passer par (command...

 

Je ne sais pas faire sans aucun (command), on est obligé de charger le type de ligne.

Le mieux que je sache faire est comme cela:

 

((lambda ( / )
 (if (not (tblsearch "STYLE" "AEP"))
   (entmake
     '(
       (0 . "STYLE")
       (100 . "AcDbSymbolTableRecord")
       (100 . "AcDbTextStyleTableRecord")
       (2 . "AEP")
       (70 . 0)
       (40 . 0.0)
       (41 . 1.0)
       (50 . 0.0)
       (71 . 0)
       (42 . 1.0)
       (3 . "Simplex.shx")
       (4 . "")
      )
   )
 )
 (if (not (findfile "AEP.lin"))
   (progn
     (setq f_pat (open (strcat (getvar "ROAMABLEROOTPREFIX") "support\\AEP.lin") "w"))
     (write-line "*AEP,AEP ----AEP----AEP----AEP----AEP----AEP----AEP--" f_pat)
     (write-line "A,20,-1.3,[\"AEP\",AEP,S=1.3,R=0.0,X=-0.65,Y=-0.65],-3" f_pat)
     (close f_pat)
   )
 )

 (command "_.-linetype" "_load" "AEP" (strcat (getvar "ROAMABLEROOTPREFIX") "support\\AEP.lin") "")
;|
 (if (not (tblsearch "LTYPE" "AEP"))
   (entmake
     (list
       '(0 . "LTYPE")
       '(100 . "AcDbSymbolTableRecord")
       '(100 . "AcDbLinetypeTableRecord")
       '(2 . "AEP")
       '(70 . 0)
       '(3 . "AEP----AEP----AEP----AEP----AEP----AEP----AEP-")
       '(72 . 65)
       '(73 . 3)
       '(40 . 24.3)
       '(49 . 20.0)
       '(74 . 0)
       '(49 . -1.3)
       '(74 . 2)
       '(75 . 0)
       (cons 340 (tblobjname "STYLE" "AEP"))
       '(46 . 1.3)
       '(50 . 0.0)
       '(44 . -0.65)
       '(45 . -0.65)
       '(9 . "AEP")
       '(49 . -3.0)
       '(74 . 0)
      )
   )
 )
|;
))

 

La fin qui est commentée devrait fonctionner, mais ce n'est pas le cas.

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

Posté(e)

Merci de ta réponse,

 

Mais c'est sa que je voudrais éviter :

(write-line "A,20,-1.3,[\"AEP\",AEP,S=1.3,R=0.0,X=-0.65,Y=-0.65],-3" f_pat)

 

Une autre approche, comment faire pour modifier une defintion de ligne existante dans un plan ?

 

Exemple: j'ai une ligne (dans mon plan)

 

VIDE,20,-1.3,[AEP,S=1.3,R=0.0,X=-0.65,Y=-0.65],-3 --> voir le code dxf

 

renommer VIDE par un autre nom

modifier le texte AEP par un autre texte de 3 lettres

Posté(e)

D'après moi ce n'est pas possible.

 

Je voulais voir si en activex c'était possible, mais dans l'aide, je suis tombé sur ceci:

 

NOTE It is not possible to create a linetype programmatically. An existing linetype may be added to a drawing by using the Load method to first load the linetype, and then the Add method to add it to the Linetypes collection.

 

 

Ce qui explique qu'avec (entmake) je n'y arrivais pas non plus... :(

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

Posté(e)

Avec un peut de recherche, on découvre que l'on peut créer des types de ligne simple avec entmake, mais pas ceux avec du texte.

Aide au téléchargement du cadastre dgfip-download-helper
Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0
Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js

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é