DenisHen Posté(e) le 23 mai 2006 Posté(e) le 23 mai 2006 Bonsoir à tous.... Voilà, j'ai, dans mes menus, des lignes interminables de commandes......J'ai donc décidé de me mettre au Lisp.. J'ai donc créé quelques petites routines, comme dessiner un pilier ou des amorces de bâtiments... Mais je suis tombé sur un "hic"... Je dois créer un calque (pas de problème ) de couleur jaune=2 (pareil) mais d'un type de ligne "Cloture-Piquet-Bois".... Là, je coince car je n'arrive pas à utiliser correctement "tblsearch" pour savoir si ce type de ligne existe déjà.... Et pour compliquer le tout, ce type de ligne utilise une police de "Cloture1"... Et re "tblsearch.... J'ai commencé à écrire un truc... Mais je m'emmèles les nougats... Si quelqu'un pouvait me filer un coup de mains... Je demande avant d'écrire tout le code et de le faire de travers (car çà, j'y arrive super bien ;) ) Voici ma tripatouille : ; Création d'un calque avec couleur et type de ligne------ (defun Ph_Crea_Calq (Nom Coul Lign /) (setvar "cmdecho" 0) (cond (or (= Lign "Cloture-Piquet-Bois") (= Lign "Cloture-Piquet-Fer") ) (setq Nom ("Cloture1") ; Nom de la police dans le DWG (setq Police ("simplex.shx")) ;Nom de la police windows (ttf ou shx) (setq Comp (1)) ; facteur de compression (setq Inclin (0)) ; Angle d'inclinaisonn (StylTxt (Nom Police Comp Inclin)) )) (TypLign Lign) ) ; Création d'un Type de ligne ---------------------------- (defun TypLign (Nom /) (if (not (tblsearch "LTYPE" TypLign)) (command "-typeligne" "ch" Nom "s:/config/Phalène/Phalène.lin" "" "" "" "" "" "" "" "") ) ) ; Création d'un style de texte----------------------------- (defun StylTxt (Nom Police Comp Inclin /) (setvar "cmdecho" 0) ) 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 23 mai 2006 Posté(e) le 23 mai 2006 Salut, Encore beaucoup d'erreurs de paranthèses - Avec cond, comme je te le disais ailleurs, chaque groupe (condition/action_si_condition_remplie) doit être inclus à l'intérieur de paranthèses - La valeur affectée à une variable, si c'est un entier, un réél, une chaine ou un symbole, ne doit pas être incluse à l'intérieur de paranthèses. (defun Ph_Crea_Calq (Nom Coul Lign /) (setvar "cmdecho" 0) (cond [b]([/b](or (= Lign "Cloture-Piquet-Bois") (= Lign "Cloture-Piquet-Fer") ) ;_ fin de or (setq Nom "Cloture1") ;_ Nom de la police dans le DWG (setq Police "simplex.shx") ;_ Nom de la police windows (ttf ou shx) (setq Comp 1) ;_ facteur de compression (setq Inclin 0) ;_ Angle d'inclinaisonn (StylTxt (Nom Police Comp Inclin)) [b])[/b] ;_ fin du groupe condition/action_si_condition_remplie ) ;_ fin de cond (TypLign Lign) ) ;_ fin de defun Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 24 mai 2006 Posté(e) le 24 mai 2006 Re (... suite) (defun TypLign (Nom /)(if (not (tblsearch "LTYPE" [surligneur]TypLign[/surligneur]))(command "-typeligne" "ch" Nom "s:/config/Phalène/Phalène.lin" "" "" "" "" "" "" "" ""))) Je suppose que tu voulais écrire (tblsearch "LTYPE" Nom) ? (defun StylTxt (Nom Police Comp Inclin /)(setvar "cmdecho" 0)) Je suppose qu'il manque des bouts ?La routine StylTxt ne fait que mettre CMDECHO à 0 (qui est déjà à 0 quand la routine est appelée par la fonction Ph_Crea_Calq).Soit tu gères les variables dans la fonction principale et elles conservent leurs valeurs lors des appels des sous routines, soit tu les gères pour chaque sous routines. NOTA : quand on modifie les valeurs des variables système juste pour l'exécution d'un LISP, il est préférable de restaurer leurs valeurs initiales aux variables en fin de routine. (defun MaRoutine (/ old_echo)(setq old_echo (getvar "CMDECHO"))(setvar old_echo 0)... ;; Autant de lignes de codes et d'appels à des sous-routines... ;; que tu veux, pour lesquels CMDECHO est désactivé.(setvar "CMDECHO" old_echo)) À mon avis il est aussi préférable, quand on joue avec les variables système, de redéfinir la fonction *error* pour que les valeurs initiales des variables soient restaurées en cas d'erreur ou d'annulation. Tu peux faire une recherche dans les forums, le sujet a souvent été abordé, mais il n'y a là rien d'indispensable, c'est un plus que tu pourras étudier plus tard... [Edité le 24/5/2006 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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