kermitos Posté(e) le 26 juin 2008 Posté(e) le 26 juin 2008 Bonjour a tous et toutes 1ére utilisation du lispje cherche à créer ub rectangle pour commencer mon apprentissage en lisp! y a til une personne dispo à m'indiquer le chemin à suivremerci d'avance Avant de savoir courir if faut savoir marcher
Arcasdk Posté(e) le 26 juin 2008 Posté(e) le 26 juin 2008 Coucou, Alors pour celà tu dois (defun c:rectanglelisp(/ p1 p2 ) (setq p1 (getpoint "\nSpécifiez le point bas gauche du rectangle sur l'écran :") (setq p2 (getpoint "\nSpécifiez le point haut droit du rectangle sur l'écran :") (command "rectangle" p1 p2) ) Voilà, trés simple . Ensuite on peut faire qqch pour donner le point d'insertion d'un coté ou du centre, la hauteur et la longueur et il se débrouille tout seul. Explication. (defun c:rectanglelisp -> définit la routine sous le nom de rectanglelisp. Pour la lancer dans autocad tu devras écrire ça (/p1 p2) -> Ce sont les variables que tu vas utiliser dans ton programme. Setq p1 -> Créer une variable p1 Getpoint -> Demande à l'utilisateur de cliquer un point à l'écran. le message sera "Spécifiez le point bas gauche du rectangle sur l'écran :" le \n c'est pour écrire à la ligne (command "rectangle" p1 p2) -> C'est exactement la même chose que dans la barre de commande. tulance la commande rectangle. tu entres les coordonnées p1 puis p2. et enfin refermer la parenthèse pour cloturer le programme [Edité le 26/6/2008 par Arcasdk] <IMG SRC=http://peronfrederic.free.fr/banniere.jpg></IMG> <a href=www.formu-lan.net>www.FormuLan.net</a>
bseb67 Posté(e) le 26 juin 2008 Posté(e) le 26 juin 2008 Salut kermitos! Tout d'abord, l'objet rectangle n'existe pas sous autocad, c'est en fait une polyligne fermée avec4 sommets. Est-ce que le rectangle que tu veux dessiner sera parallèle au scu (axe X et Y)?- Si oui, tu peux utiliser simplement la commande _rectang: (command "_rectang" (setq p1 (getpoint "\nCoin1: ")) (getpoint p1 "\nCoin2: ")) getpoint demande la saisie d'un point, et (getpoint p1 "message") affiche une ligne allant dep1 au curseur de ta souris, donc la diagonale du rectangle. - Sinon, solution 1: utiliser la commande _rectang et faire une rotation solution 2: demander au moins 3 points (le 4ème tu peux le calculer) et créer une polyligne passant par ces 4 points. Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
kermitos Posté(e) le 26 juin 2008 Auteur Posté(e) le 26 juin 2008 merci pour les infosje connais la commande rectangle, néanmoins je cherche à apprendre le lisp en vue de certaine amélioration de travail losque vs ecrivez une chaine ( un lisp) on doit tjrs l'enregistrer dans support avec les autres lisp?comment lancé la commande?peux créer un icone pour la commande lisp? Avant de savoir courir if faut savoir marcher
Arcasdk Posté(e) le 26 juin 2008 Posté(e) le 26 juin 2008 Tu peux enregistrer tes lisps où bon te semble. Pour les lancer il faut les charger (charger une application) ou (charger la fenêtre d'édition active (dans l'éditeur visal lisp)) et taper dans la ligne de commande de nom que tu as mis après le c: dans defun (defun c:nomeduprogramme (\)) Tu peux aussi créer une icône qui tapera à ta place le nom de la commande dans la ligne de commande. <IMG SRC=http://peronfrederic.free.fr/banniere.jpg></IMG> <a href=www.formu-lan.net>www.FormuLan.net</a>
Bred Posté(e) le 26 juin 2008 Posté(e) le 26 juin 2008 Re,pour l'utilisation des codes lisp, tu as ici un tuto. offert par (gile). Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
kermitos Posté(e) le 26 juin 2008 Auteur Posté(e) le 26 juin 2008 re , a tous merci pour les infosvu que je suis novice je v essayer de digerer toutes les données.à l'occasion je pourrais vous soliciter.merci Avant de savoir courir if faut savoir marcher
Matt666 Posté(e) le 27 juin 2008 Posté(e) le 27 juin 2008 SalutPerso j'aurais plus utilisé la combinaison getpoint getcorner pour bien singer la vraie commande...(command "_rectang" (setq a (getpoint)) (getcorner a))Ou encore (defun c:rec () (command "_.rectang") (while (not (zerop (getvar "cmdactive")))(command pause)) ) Pour toutes les options disponibles avec l'outil natif. Salut ! "Chacun compte pour un, et nul ne compte pour plus d'un."
Jipicad Posté(e) le 28 janvier 2009 Posté(e) le 28 janvier 2009 yobah du lisp en gros c'est des liste est si tu fait des rectangles du genre tu te fais chier ensuite si tu veux modifier(defun c:rectanglelisp(/ p1 p2 )(setq p1 (getpoint "\nSpécifiez le point bas gauche du rectangle sur l'écran :")(setq p2 (getpoint "\nSpécifiez le point haut droit du rectangle sur l'écran :")(command "rectangle" p1 p2)) alors jte conseil de creer une fonction qui fait des ligne et une autre qui appel la fonction ligne 4 fois avec des point en parametre (defun line (BPOINT EPOINT LAYER / ) (entmake (list (cons 0 "Line") (cons 10 BPOINT) (cons 11 EPOINT) (cons 8 LAYER) ) ) (entlast)) (defun recdraw (BPOINT L H LAYER / X Y PT1 PT2 PT4) (setq X (+ L (car BPOINT)) Y (+ H (cadr BPOINT)) PT1 (list X (cadr BPOINT) ) PT2 (list X Y ) PT3 (list (car BPOINT) Y ) ) (line BPOINT PT1 LAYER) (line PT1 PT2 LAYER) (line PT2 PT3 LAYER) (line PT3 BPOINT LAYER) ) pis dans un un grosse main fonction quand jai besoin de dessiner un rectangle ben jy call (recdraw '(0 0 0) 15 32 "0")ou mettons (setq pt (getpoint) longueur (getreal "\nentrer longueur:") hauteur (getreal "\nentrer longueur:"))(recdraw pt longueur hauteur "0") voila tu peux regarder laide de vlide tres pratiquebref ces sa jespere que sa peux taider
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