yann67 Posté(e) le 25 septembre 2011 Posté(e) le 25 septembre 2011 (modifié) Messieurs,ci joint ma petite macro ^C^C_-insert;plafo;M2P;\\;;;^C^C_-insert;inter;x;1;\\;^C^C_arc;\\\;^C^C_chprop;\;ca;liai;\\\ Je voulais donc modifier cette macro en lisp afin d'avoir un panel plus grand de raccourci clavier ci-joint mon lisp qui en es à ses début :-)soyez indulgent! mozart était comme moi quand il avait 2ans (defun C : SA ( ) (setq a (getpoint "\npremier point: ")) (setq b (getpoint "\n2ème point: ")) (setq x1 (car a)) "\ncoordonnée x 1er point" (setq x2 (car B)) "\ncoordonnée x 2ème point" (setq y1 (cadr a)) "\ncoordonné y 1er point" (setq y2 (cadr B)) "\ncoordonnée y 2ème point" (setq xdis (-x2 x1)) (setq ydis (-y2 y1)) (command "insérer" "lumi" xdis ydis 0")) (command "insérer" "inter" 1 1 0")) (command "arc" "3P")) (setq dep (getpoint "\nspécifier point de départ arc: ")) (setq cen (getpoint "\nspécifier le centre de l’arc: ")) (setq fin (getpoint "\nspécifier le dernier point de l’arc: ")) (princ) ) Merci d'avance Modifié le 25 septembre 2011 par (gile) ajout des bbcodes et d'une parenthèse fermante
Tramber Posté(e) le 25 septembre 2011 Posté(e) le 25 septembre 2011 Salut Wolfgang ! Dommage que je ne sois pas modérateur, j'aurais mis ton programme entre balises code. Et j'aurais aussi choisi l'éditeur complet et les options afin de désactiver les emoticones (écrire en lisp avec ces parenthèses crée des smiles dans ton message. C'est un problème de CADxp). (defun C:SA (/ *error* ) (defun *error*(msg) (princ "\nErreur de ton programme") (setvar "OSMODE" *OSMODE*) ) (setq *OSMODE*(getvar "OSMODE")) (setvar "OSMODE" 0) (setq a (getpoint "\npremier point: ")) (setq b (getpoint "\n2ème point: ")) (setq x1 (car a)); "\ncoordonnée x 1er point" NE SERT à RIEN !, j'ai mis en remarque (setq x2 (car b)); "\ncoordonnée x 2ème point" (setq y1 (cadr a)); "\ncoordonné y 1er point" (setq y2 (cadr b)); "\ncoordonnée y 2ème point" (setq xdis (/(+ x2 x1)2)) (setq ydis (/(+ y2 y1)2)) (command "insérer" "lumi"(list xdis ydis) 1 1 0) (command "insérer" "inter"(list xdis ydis) 1 1 0) (command "arc" pause pause pause ) (setvar "OSMODE" *OSMODE*) (princ) ) Voici ce que j'ai fait : d'abord j'ai pris le contrôle de la variable OSMODE (tes réglages d'accrobj) afin de passer toutes ces étapes sans ces derniers. En cas de fin d'execution normale ou d'erreur, le SETVAR réinjecte cette valeur et les accrochages réglés reviennent.C'était une question d'usage, important de toujours reproduire ce schéma dans une routine de ce type.Ensuite, je comprends que tu veux insérer des blocs au milieu de 2 points. J'ai écrit la bonne syntaxe.Ensuite tu veux faire un arc manuellement. Je te propose une syntaxe toute bête. On aurait pu écrire : (command "arc" (getpoint) (getpoint) (getpoint) ) mais avec le mot "pause", c'est une astuce, on voit la commande ARC à l'écran ce qui n'est pas le cas avec GETPOINT. A toi de créer un COMMAND qui utilise CHPROP sur le dernier élément. Je te propose le début :(command "chprop" "d" "" ....)D est pour dernier suivi d'un "" pour valider les objets. A toi de compléter ce commande et de le glisser dans ton programme.Tu vas apprendre plein de trucs si tu te mets au lisp. Va doucement, ca va t'amener des outils géniaux... Et on est nombreux à pouvoir t'aider n'hésite pas. Ces premiers pas sont tout de même pas mal encourageants.Hoppla Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
yann67 Posté(e) le 25 septembre 2011 Auteur Posté(e) le 25 septembre 2011 Salut Wolfgang ! Dommage que je ne sois pas modérateur, j'aurais mis ton programme entre balises code. Et j'aurais aussi choisi l'éditeur complet et les options afin de désactiver les emoticones (écrire en lisp avec ces parenthèses crée des smiles dans ton message. C'est un problème de CADxp). (defun C:SA (/ *error* ) (defun *error*(msg) (princ "\nErreur de ton programme") (setvar "OSMODE" *OSMODE*) ) (setq *OSMODE*(getvar "OSMODE")) (setvar "OSMODE" 0) (setq a (getpoint "\npremier point: ")) (setq b (getpoint "\n2ème point: ")) (setq x1 (car a)); "\ncoordonnée x 1er point" NE SERT à RIEN !, j'ai mis en remarque (setq x2 (car B)); "\ncoordonnée x 2ème point" (setq y1 (cadr a)); "\ncoordonné y 1er point" (setq y2 (cadr B)); "\ncoordonnée y 2ème point" (setq xdis (/(+ x2 x1)2)) (setq ydis (/(+ y2 y1)2)) (command "insérer" "lumi"(list xdis ydis) 1 1 0) (command "insérer" "inter"(list xdis ydis) 1 1 0) (command "arc" pause pause pause ) (setvar "OSMODE" *OSMODE*) (princ) ) Voici ce que j'ai fait : d'abord j'ai pris le contrôle de la variable OSMODE (tes réglages d'accrobj) afin de passer toutes ces étapes sans ces derniers. En cas de fin d'execution normale ou d'erreur, le SETVAR réinjecte cette valeur et les accrochages réglés reviennent.C'était une question d'usage, important de toujours reproduire ce schéma dans une routine de ce type.Ensuite, je comprends que tu veux insérer des blocs au milieu de 2 points. J'ai écrit la bonne syntaxe.Ensuite tu veux faire un arc manuellement. Je te propose une syntaxe toute bête. On aurait pu écrire : (command "arc" (getpoint) (getpoint) (getpoint) ) mais avec le mot "pause", c'est une astuce, on voit la commande ARC à l'écran ce qui n'est pas le cas avec GETPOINT. A toi de créer un COMMAND qui utilise CHPROP sur le dernier élément. Je te propose le début :(command "chprop" "d" "" ....)D est pour dernier suivi d'un "" pour valider les objets. A toi de compléter ce commande et de le glisser dans ton programme.Tu vas apprendre plein de trucs si tu te mets au lisp. Va doucement, ca va t'amener des outils géniaux... Et on est nombreux à pouvoir t'aider n'hésite pas. Ces premiers pas sont tout de même pas mal encourageants.Hoppla Tu es un nerveux du lisp!! en meme temps, je suis très proche du néant! :-)merci de ta réactivité, vais le tester demain!
Tramber Posté(e) le 25 septembre 2011 Posté(e) le 25 septembre 2011 je suis très proche du néant! :-)Non non, tu vaux plus que ça B) Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
yann67 Posté(e) le 26 septembre 2011 Auteur Posté(e) le 26 septembre 2011 Non non, tu vaux plus que ça B) hello, zut, j'ai 2012LT et ça ne marchera pas!!!bon, je vais surement freiner serieusement ma formation lisp!!à plus
Tramber Posté(e) le 26 septembre 2011 Posté(e) le 26 septembre 2011 Prends ZWCAD à la maison. Tu apprendras tranquillement le lisp et changera d'employeur.Moi je ne signe pas pour une version LT :P D'ailleurs j'ai ma propre licence ;) Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
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