aldo127 Posté(e) le 30 janvier 2010 Partager Posté(e) le 30 janvier 2010 Bonjour, J'ai trouvé ce lisp, mais il ne fonctionne pas! Et comme j'y connais rien en lisp...J'utilise Autocad 2010 Fr/En ;;; By Jimmy Bergmark ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved ;;; Website: www.jtbworld.com ;;; E-mail: info@jtbworld.com ;;; Midpoint of 2 points (defun c:mpt (/ pt1 pt2) (if (and (= (getvar "cmdactive") 1) (setq pt1 (getpoint "\nFirst point: ")) (setq pt2 (getpoint pt1 "\nSecond point: ")) ) (command "_non" (list (/ (+ (car pt1) (car pt2)) 2) (/ (+ (cadr pt1) (cadr pt2)) 2) (/ (+ (caddr pt1) (caddr pt2)) 2) ) ) ) (princ) ) ;;; 1/3:rd point of 2 points (defun c:3pt (/ pt1 pt2) (if (and (= (getvar "cmdactive") 1) (setq pt1 (getpoint "\nFirst point: ")) (setq pt2 (getpoint pt1 "\nSecond point: ")) ) (command "_non" (list (+ (/ (- (car pt2) (car pt1)) 3) (car pt1)) (+ (/ (- (cadr pt2) (cadr pt1)) 3) (cadr pt1)) (+ (/ (- (caddr pt2) (caddr pt1)) 3) (caddr pt1)) ) ) ) (princ) ) ;;; 1/4:th point of 2 points (defun c:4pt (/ pt1 pt2) (if (and (= (getvar "cmdactive") 1) (setq pt1 (getpoint "\nFirst point: ")) (setq pt2 (getpoint pt1 "\nSecond point: ")) ) (command "_non" (list (+ (/ (- (car pt2) (car pt1)) 4) (car pt1)) (+ (/ (- (cadr pt2) (cadr pt1)) 4) (cadr pt1)) (+ (/ (- (caddr pt2) (caddr pt1)) 4) (caddr pt1)) ) ) ) (princ) ) ;;; Midpoint of 3 points (defun c:mpt3 (/ pt1 pt2 pt3) (if (and (= (getvar "cmdactive") 1) (setq pt1 (getpoint "\nFirst point: ")) (setq pt2 (getpoint pt1 "\nSecond point: ")) (setq pt3 (getpoint pt2 "\nThird point: ")) ) (command "_non" (list (/ (+ (car pt1) (car pt2) (car pt3)) 3) (/ (+ (cadr pt1) (cadr pt2) (cadr pt3)) 3) (/ (+ (caddr pt1) (caddr pt2) (caddr pt3)) 3) ) ) ) (princ) ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 30 janvier 2010 Partager Posté(e) le 30 janvier 2010 Salut, Il ne faut pas dire : "il ne fonctionne pas!", mais "je n'arrive pas à le faire fonctionner"... Ce LISP fonctionne, mais pas comme une commande traditionnelle. Les commandes définies sont des commandes à appeler de manière transparente, à l'intérieur d'une commande en cours, pour répondre à une invite du style "Spécifier un point: ". Exemple Commande: ligneSpécifiez le premier point: 'mpt3First point:Second point:Third point: _nonSpécifiez le point suivant ou [annUler]: Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tramber Posté(e) le 30 janvier 2010 Partager Posté(e) le 30 janvier 2010 Sauf mon (grand) respect pour Jimmy, il y a un intérêt face à la fonction 'CAL et plt ? Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.) Lien vers le commentaire Partager sur d’autres sites More sharing options...
aldo127 Posté(e) le 30 janvier 2010 Auteur Partager Posté(e) le 30 janvier 2010 Y avait pas d'explication avec le lisp.A quoi tu as vu que c'est une commande qui fonctionne à la demmande d'un point? J'ai essayé et ça ne fonctionne pas avec moi Commande: ligneSpécifiez le premier point: 'mpt3Point incorrect. Spécifiez le premier point: Voilà, j'ai un message d'erreur point incorrect et puis la commande ligne continue normalement Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 30 janvier 2010 Partager Posté(e) le 30 janvier 2010 A quoi tu as vu que c'est une commande qui fonctionne à la demmande d'un point? Parce que je sais lire le LISP, j'ai vu : (if (= (getvar "cmdactive") 1) ...) ce qui veut dire que la routine ne fonctionne que si un commande est déjà active, ensuite, je vois que la routine retourne un point donc j'en conclue que c'est à utiliser en mode transparent à la demande d'un point (si tu fais 'mpt à la demande "Choix des objets: " tu auras une erreur). J'ai essayé et ça ne fonctionne pas avec moi Je viens de re-essayer les 4 commandes, elles fonctionnent toutes chez moi... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
aldo127 Posté(e) le 30 janvier 2010 Auteur Partager Posté(e) le 30 janvier 2010 Oups, je n'ai pas mis le ' devant la commande mpt3....Quand on sait l'uliser, c'est quand même sympa. Merci pour ton aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
rebcao Posté(e) le 30 janvier 2010 Partager Posté(e) le 30 janvier 2010 Bonjour, Tiens ça me donne une idée ! ça n'a rien à voir, mais avec la commande NETTOYER on peut faire un truc semblable ? On crée une zone de 3 points et comme la commande NETTOYER crée une image pour laquelle on peut accrocher le CENTRE ! ;) NON ? :P Aïe ! PAS SUR LA TETE !!!!!!!! Christian [Edité le 30/1/2010 par rebcao] Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tramber Posté(e) le 30 janvier 2010 Partager Posté(e) le 30 janvier 2010 Pour moi, c'est définitivement de passer par 'CAL avec (cur+cur+cur)/3, par exemple. .... Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.) Lien vers le commentaire Partager sur d’autres sites More sharing options...
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