Aller au contenu

Pb avec code DXF pour Style de texte


Messages recommandés

Posté(e)

Bonjour à tous,

 

Voilà, j'ai dans un Lisp ceci :

(defun c:phTypLign (NomLign / VarCherche) 
   (c:StylTxt "Nihon" "WINGDNG2.TTF" "0" "1")
   (c:StylTxt "Cloture1" "Phalène-Ligne.shx" "0" "1")
   (c:StylTxt "Cloture2" "simplex.shx" "0" "1")
   (c:StylTxt "Cloture3" "Romand.shx" "0" "1")
   (c:StylTxt "Reseau" "simplex.shx" "0" "1")
   (c:StylTxt "TypLign1" "simplex.shx" "0" "1")
 (if (> (strlen NomLign) 3)
   (setq VarCherche (strcat (substr NomLign 1 (- (strlen NomLign) 1)) "*"))
   (setq VarCherche (strcat NomLign "*"))
 ) ;(princ (strcat "Nom de recherche = " VarCherche))
 (vl-catch-all-apply
   'vla-load
   (list (vla-get-linetypes
    (vla-get-activedocument (vlax-get-acad-object))
  )
  VarCherche
  (findfile "Phalène.lin")
   )
 )
) ;_ Fin de defun

Et celà plus loin :

(defun c:StylTxt (NomTxt Police Comp Inclin /)
 (setvar "CMDECHO" 0) 
(if (not (tblsearch "STYLE" NomTxt))
   (entmake '((0 . "STYLE")
       (5 . "40")
       (100 . "AcDbSymbolTableRecord")
       (100 . "AcDbTextStyleTableRecord")
       (2 . NomTxt)
       (70 . 0)
       (40 . 0.0)
       (41 . (atof Comp))
       (50 . 0.0)
       (71 . 0)
       (42 . 0)
       (3 . Police)
       (4 . "")
      )
   )
 )
) ;_ Fin de defun

 

Mon problème est qu'AutoCAD me répond :

; erreur: groupe DXF incorrect: (2 . NOMTXT)

 

et je ne sais absolument pas quoi faire avec ça ! !

 

Merci pour l'effort de lecture pour lire mon code :cool:

 

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)

Salut,

à première vue :

changer (2 . NomTxt) par (cons 2 NomTxt).

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Salut Bred et merci,

 

Si ton orthographe est correcte (car j'ai copier/coller), AutoCAD me cherche avec :

; erreur: groupe DXF incorrect: (CONS 2 NOMTXT)

 

 

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)

mmmm...

je me demande si tu ne devrais pas faire en fait un

 

 (entmake
 ( [b] append[/b]
   '(
     (0 . "STYLE")
(5 . "40")
(100 . "AcDbSymbolTableRecord")
(100 . "AcDbTextStyleTableRecord")
[b] (list (cons 2 NomTxt))[/b]
....

 

(pas testé)

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Salut,

 

l'apostrphe devant une paranthèse est l'abréviation de la fonction LISP quote qui signifie ne pas évaluer l'expression suivante

 

(setq a 10) -> 10

 

'(2 . a) -> (2 . a) ou (quote (2 . a)) -> (2 . a)

 

'((0 . "STYLE") (2 . a)) -> ((0 . "STYLE") (2 . A))

 

'((0 . "STYLE") (cons 2 a)) -> ((0 . "STYLE") (CONS 2 A))

 

(list '(0 . "STYLE") '(2 . a)) -> ((0 . "STYLE") (2 . A))

 

(list '(0 . "STYLE") (cons 2 a)) -> ((0 . "STYLE") (2 . 10))

 

Donc :

 

(defun c:StylTxt (NomTxt Police Comp Inclin /)
 (setvar "CMDECHO" 0)			; Complètement INUTILE si aucun appel à command
 (if (not (tblsearch "STYLE" NomTxt))
   (entmake (list
       '(0 . "STYLE")
       '(5 . "40")
       '(100 . "AcDbSymbolTableRecord")
       '(100 . "AcDbTextStyleTableRecord")
       (cons 2 NomTxt)
       '(70 . 0)
       '(40 . 0.0)
       (cons 41 (atof Comp))
       '(50 . 0.0)
       '(71 . 0)
       '(42 . 0)
       (cons 3 Police)
       '(4 . "")
     )
   )
 )
) ;_ Fin de defun 

 

Et s'il te plait, je t'en ai déjà parlé, on réserve les (defun c:toto ...) aux fonctions destinées à être appelées toto à la ligne de commande donc sans arguments. pour tes routines avec arguments destinées à être appelées depuis une autre routine on écrit juste (defun toto ...)

 

[Edité le 25/1/2007 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Désolé Bred, mais on peut dire qu'AutoCAD te cherche aussi maintenant, il me dit de te passer ça :

 

; erreur: groupe DXF incorrect: (LIST (CONS 2 NOMTXT))

 

Merci de te casser la tête pour moi,

 

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)

Salutations (gile) et merci,

 

Je regarde tout de suite ton post,

 

Et j'utilise aussi StylTxt depuis AutoCAD via des Menus

[style Cadastre]^C^C(c:StylTxt "Cadastre" "simplex.shx" "0" "1.2");

 

 

Mais tu as raison, je n'y pense pas toujours...

 

Merci encore,

 

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)

Merci à vous, :)

 

Ca fonctionne au poil ! !

 

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)

Bon, il faut que je me concentre sur quelque chose moi....

 

Désolé DenisH, je tapais les lignes sans les tester, en faisant des copier/coller/modifier sans aprofondir la chose, et je ne suis pas encore assez bon pour ça....

Donc je t'ai fait perdre ton temps pour rien....

Et encore plus ecoeurer parceque j'avoue me sentir assez bien avec les entmake....

 

J'espère que je pourrais t'être d'une plus grande aide une autre fois....

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Ne t'inquiète pas Bred, j'apprend (enfin j'essai), même si c'est avec des trucs faux.

 

Exemple pour "entmake" avec lequel je n'avais bossé que trop raremen, et grace à toi, j'ai lu les aides et consulter "aidacad.com"...

 

Donc, merci à tous d'avoir pris le temps de m'aider...

 

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)

Merci encore, ça fonctionne AU POIL ! !

 

Mais maintenant, je cherche à rendre ce style courant de la même façon, c.a.d. sans "command" ou grace à un code DXF ?

 

Merci encore,

 

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)

Merci (gile), c'est génial ! !

 

Mais..... Oui, il y a toujours un mais, j'ai l'impression que le "code DXF" 50 est pour l'inclinaison. Mais faut-il le rentrer en radian ? Et si oui, ai-je bon :

Menu :

[blaBla]^C^C(c:StylTxt "Cadastre" "ARIAL.TTF" "1" "20");_.mtext.......

 

Lisp :

(defun c:StylTxt (NomTxt Police Comp Inclin /)
(setvar "CMDECHO" 0) 
(if	(not (tblsearch "STYLE" NomTxt))
	(entmake (list
						 '(0 . "STYLE")
						 '(5 . "40")
						 '(100 . "AcDbSymbolTableRecord")
						 '(100 . "AcDbTextStyleTableRecord")
						 (cons 2 NomTxt)
						 '(70 . 0)
						 '(40 . 0.0)
						 (cons 41 (atof Comp))
(cons 50 . (* (/ Inclin 200) pi))
						 '(71 . 0)
						 '(42 . 0)
						 (cons 3 Police)
						 '(4 . "")
					 ) ;_ Fin de list
	) ;_ Fin de entmake
) ;_ Fin de if
(setvar "TEXTSTYLE" NomTxt)
)

 

Si j'ai bon, c'est grace à vous tous, si j'ai faut, c'est uniquement de ma faute ;) ! !

 

Merci encore,

 

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)

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é