Aller au contenu

Milieu 2 ou 3 Pt


Messages recommandés

Posté(e)

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)
)

 

Posté(e)

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: ligne

Spécifiez le premier point: 'mpt3

First point:

Second point:

Third point: _non

Spécifiez le point suivant ou [annUler]:

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

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

 

./__\.
(.°=°.)
Posté(e)

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: ligne

Spécifiez le premier point: 'mpt3

Point incorrect.

Spécifiez le premier point:

 

Voilà, j'ai un message d'erreur point incorrect et puis la commande ligne continue normalement

 

 

Posté(e)

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

Posté(e)

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 @)

Posté(e)

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

 

./__\.
(.°=°.)

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité