DenisHen Posté(e) le 12 avril 2006 Posté(e) le 12 avril 2006 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)
(gile) Posté(e) le 12 avril 2006 Posté(e) le 12 avril 2006 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
DenisHen Posté(e) le 14 avril 2006 Auteur Posté(e) le 14 avril 2006 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)
DenisHen Posté(e) le 14 avril 2006 Auteur Posté(e) le 14 avril 2006 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)
DenisHen Posté(e) le 14 avril 2006 Auteur Posté(e) le 14 avril 2006 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)
(gile) Posté(e) le 14 avril 2006 Posté(e) le 14 avril 2006 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
bonuscad Posté(e) le 14 avril 2006 Posté(e) le 14 avril 2006 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
DenisHen Posté(e) le 19 janvier 2007 Auteur Posté(e) le 19 janvier 2007 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)
Patrick_35 Posté(e) le 19 janvier 2007 Posté(e) le 19 janvier 2007 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 PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 19 janvier 2007 Auteur Posté(e) le 19 janvier 2007 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)
DenisHen Posté(e) le 22 janvier 2007 Auteur Posté(e) le 22 janvier 2007 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)
DenisHen Posté(e) le 22 janvier 2007 Auteur Posté(e) le 22 janvier 2007 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)
(gile) Posté(e) le 22 janvier 2007 Posté(e) le 22 janvier 2007 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 nilmais(finfile "C:\\Mes_Blocs\\NomDuBloc.dwg") retourne "C:\\Mes_Blocs\\NomDuBloc.dwg" Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
DenisHen Posté(e) le 22 janvier 2007 Auteur Posté(e) le 22 janvier 2007 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'AutoCADJ'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"); Où "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)
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant