Aller au contenu

tblsearch et style de texte et de ligne ?


Messages recommandés

Posté(e)

Bonjoir à tous,

 

Voilà, débutant en Lisp, j'ai fait une petite routine qui créé des style de texte ( utilisés dans des lignes complexes ) , puis elle créé le type de ligne...

 

Mais pour bien faire, il faudrait qu'elle vérifie si le style de ligne ou le type de ligne n'est pas déjà créé...

 

je pense que le code pourait ressembler à ça :

 

 

        (cond ((= (tblsearch "TypeLigne" "") nil)
               (command "-typeligne" "ch" TypLign "s:/config/phalène/phalène.lin" "")
               )
         )

 

Mais je dois me tromper... Si non, je fais un loto tout de suite ;)

 

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)

Attends un peu pour le loto ;)

 

Pas de hasard en LISP !

 

Dans l'éditeur, tu sélectionnes (tblsearch "TypeLigne" "") -double clic avant la paranthèse- et tu fais ctrl+shift+E ou bouton "Charger la sélection" et tu devrais avoir un message d'erreur dans la console : il faut spécifier dans quelle table chercher.

 

Les tables sont : "LAYER", "LTYPE", "VIEW", "STYLE", "BLOCK", "UCS", "APPID", "DIMSTYLE", et "VPORT"

 

Si tu fais double clic sur tblsearch et clic sur l'icone ? l'aide va s'ouvrir à la page de tblsearch.

 

Si TypLign est une variable dont la valeur est le nom du type de ligne que tu veux charger il faut le spécifier dans le tblsearch.

 

(= x nil) peut s'écrire (not x)

Si tu n'as qu'une condition à tester tu peux utiliser if à la place de cond.

 

(if (not (tblsearch "LTYPE" TypLign))
 (command	"-typeligne"
	"ch"
	TypLign
	"s:/config/phalène/phalène.lin"
	""
      )
 ) 

 

[Edité le 12/4/2006 par (gile)]

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

Posté(e)

C'est génial ! ! Ca marche comme dans mes rêves ! !

 

Merci un milion de fois Gile ! ! !

 

 

Je m'amuse comme un petit fou ! ! :)

 

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)

Tu avais raison Gile, maintenant je suis ceinture bleue... C'est vrai que ça ne veut pas dire grand chose... ;)

 

 

Merci encore....

 

Je me demande si en postant ma routine, elle fonctionnerait chez quelqu'un d'autre... (Avec le fichier LIN)

 

Si quelqu'un en veux...... Pas de problème....

 

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, en fait, j'essai d'arranger mon code, pour qu'il soit plus "court" ( qu'il y ait moins de condition...)

et j'ai ça pour la fin de mon code...:

 
 (if (= TypLign "")
   (command "-calque" "e" Calq "co" Coul "" "")
   ) ;_ Fin de if
 (if (not (tblsearch "LTYPE" TypLign))
   (command "-typeligne" "ch" TypLign "s:/config/phalène/phalène.lin" "")
    [surligneur] (command "-calque" "e" Calq "co" Coul "" "tl" TypLign "" "")[/surligneur] 
   ) ;_ Fin de if
 ) ;_ Fin de defun

 

Ma question est : Est-ce que ce qui est [surligneur] surligné [/surligneur] corespond à [surligneur] Else [/surligneur] dans cette boucle, ou est'il exécuté à la suite de (Command "-typeligne.......) ?

 

J'ai beau double-cliquer avant et après les parenthèses... Je ne saisie pas.... Si je n'ai qu'une réponse à un IF, ma première ligne serait si OUI, ma deuxième serait si NON..........

 

Merci... Je patoge... Ca vous étonne ? ?

 

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)

Oui, çà correspond bien à else

 

(if (condition)

(action_si_condition_remplie)

(action_si_condition_non_remplie) ; optionnel

)

 

Consulte l'aide, même si c'est en anglais, c'est bien foutu et aussi ce lien que je t'avais déjà donné.

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

Posté(e)

Denis,

 

Je n'ai rien à dire de plus sur la syntaxe que (gile), sauf un détail qui ne porte pas à conséquence.

Il est préférable d'utiliser (null) au lieu de (not). Null est plutôt destiné aux listes et Not aux atomes. (tblsearch) lui renvoi une liste donc (null) est plus approprié.

(mais vu que (tblsearch) renvoi nil (atome) quand il trouve rien , not fonctionne)

 

Par contre je te conseille vivement de rajouter tons dossier "s:/config/phalène/" dans les chemins de recherches d'autocad et ainsi tu pourras faire:

(command "-typeligne" "ch" TypLign "phalène.lin" "")

 

Comme ça le jours ou tu changes ton aborecense, tu n'auras pas besoin de passer tout tes lisps en revu pour les corriger pour qu'ils fonctionnent.

 

UN CONSEIL D'AMI n'utilise pas les caractères accentués, sa t'éviteras de te tirer les cheveux par la suite (à moins que tu n'en ais plus déjà) ;)

 

Dernier chose si tu as des amis Quebecois, internationalise tes commandes, si eux sont bilingues, autocad ne l'est pas!

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

  • 9 mois après...
Posté(e)

Bonjour à tous...

 

J'ai un nouveau petit problème :

 

Je charge plusieur type de ligne en même temps mais avec un caractère générique :

(progn (command "-typeligne" "ch" "Cloture-beton*" "s:/config/........lin" "" "") 
	)

 

Comment faire si quelques type de ligne sont déjà chargés et qu'AutoCAD me demande confirmation pour "remplacer" ou pas le type déjà chargé ?

 

Merci encore une fois à tous...

 

Je progresse à pas de loup... ( mais un loup "Gutemberguien" )

 

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

 

Charges tous les axes* du fichier AutoCAD.lin sans confirmation

 

(vl-catch-all-apply 'vla-load (list (vla-get-linetypes (vla-get-activedocument (vlax-get-acad-object))) "axes*" (findfile "acad.lin")))

 

@+

 

[Edité le 19/1/2007 par Patrick_35]

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Bon, que dire de plus...

 

Encore merci ?

 

Ben ouais...

 

Mille merci Patrick_35 ! !

 

Et puis soyons fous... Bonne années à vous tous ! ! (j'avais oublié de la souhaiter :P )

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 Patrick_35, ça 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)

Re à tous,

 

Dans :

(vl-catch-all-apply 'vla-load (list (vla-get-linetypes (vla-get-activedocument (vlax-get-acad-object))) "axes*" (findfile "acad.lin")))

e "findfile" est super pratique, Mais y-a-t'il aussi la même chose pour un bloc, comme :

.....(findfile "NomDuBloc.dwg")

pour insérer un bloc ?

 

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)

Salut,

 

Findfile cherche le fichier spécifié uniquement dans les dossier du chemin de recherche si le chemin n'est pas spécifié.

 

Exemple si "NomDuBloc.dwg" est dans "C:\Mes_Blocs" et que le dossier "Mes_Blocs" n'est pas dans les chemins de recherche,

 

(finfile "NomDuBloc.dwg") retourne nil

mais

(finfile "C:\\Mes_Blocs\\NomDuBloc.dwg") retourne "C:\\Mes_Blocs\\NomDuBloc.dwg"

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

Posté(e)

Merci (gile),

 

C'était pour résoudre un problème de "cheminement" dans mes répertoires :

J'ai mes prog et mes routines dans "S:\Config\Phalene\" et mes blocs sont rangés comme ça :

 

Les arbre dans "S:\Config\Phalene\Block\Arbres"

Les poteaux dans "S:\Config\Phalene\Block\Poteaux"

Les Signaux dans "S:\.........\Block\Signaux"

................

 

tu devines le reste...

Sachant que "S:\Config\Phalene" est dans les chemin de recherche d'AutoCAD

J'ai donc créé des routines qui, dans mon fichier .mns ressemble à ça :

[Feu Piéton]^C^C(c:BlockEchel "Poteau (objet)" "6" "s:/Config/Phalène/Block/Poteau/Poteau_Feu3-Pieton-C" "M");

 

 

"Poteau (objet)"

= Nom du calque comprenant le bloc

"6"

= couleur du calque

"s:/Config/Phalène/Block/Poteau/Poteau_Feu3-Pieton-C"

= Chemin et nom du .dwg à inserer

"M"

= Taille du bloc (Moyen selon les échelles du dessin)

 

S'il y a une méthode pour éviter d'écrire tout le chemin avant le nom du .dwg, celà m'aurait rudement bien servi. Car si je donne mes routines à quelqu'un, il devra réécrire tous les chemin dans le fichier .mns.

 

Voilà, c'était pour arranger les futurs utilisateurs.

 

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é