Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

est-il possible de réaliser un lisp qui permet de calculer la longueur d'un arc, (otre que la commande dans Autocad)

en donnant un point de départ puis le choix d'un deuxiéme point puis un otre sin on veut (kom le cumul de cotation linéaire)

merci d'avance pour vos réponse.

Avant de savoir courir if faut savoir marcher

Posté(e)

Salut,

si tu as déjà un arc :

(defun c:larc (/ e)
 (while (not e)
   (setq e (entsel "\n Choix de l'arc :"))
   (command)
   (if e
     (if (equal (vla-get-objectname (setq e (vlax-ename->vla-object (car e)))) "AcDbArc")
(progn	  
  (princ (strcat "\n Longueur Arc : " (rtos (vla-get-arclength e)))))
(setq e nil))
     )
   )
 (princ)
)

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

merci bred, pour ta réponse

cependant je voulais pouvoir faire une cotation cumulé d'un arc!

j'me suis mal exprimé!!!

 

Avant de savoir courir if faut savoir marcher

Posté(e)

Salut,

 

Quelque chose comme ça ?

 

(defun c:arclen	(/ arc p0 p1 d0 d1)
 (vl-load-com)
 (if
   (and
     (setq arc (car (entsel "\nSélectionnez un arc: ")))
     (= (cdr (assoc 0 (entget arc))) "ARC")
   )
    (if (and
   (setq p0 (getpoint "\nSélectionnez le point de départ: "))
   (setq d0 (vlax-curve-getDistAtpoint arc (trans p0 1 0)))
   (not (draw-pt p0))
 )
      (while
 (and
   (setq p1 (getpoint "\nSélectionnez un point sur l'arc: "))
   (setq d1 (vlax-curve-getDistAtpoint arc (trans p1 1 0)))
 )
  (redraw)
  (draw-pt p0)
  (draw-pt p1)
  (princ (strcat "\nDistance depuis le point départ : "
		 (rtos (abs (- d1 d0)))
	 )
  )
      )
      (princ "\nLe point spécifié n'est pas sur l'arc.")
    )
    (princ "\nEntité non valide.")
 )
 (redraw)
 (princ)
)


(defun draw-pt (pt / len)
 (setq len (/ (getvar 'viewsize) 40.0))
 (grvecs
   (list
     (polar pt (* pi 1.25) len)
     (polar pt (* pi 0.25) len)
     (polar pt (* pi 0.75) len)
     (polar pt (* pi 1.75) len)
     )
   )
 ) 

 

[Edité le 2/7/2008 par (gile)]

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

Posté(e)

Si tu veux pouvoir inverser ton point de départ pour un arc pour effectué ta mesure, tu peux regarder cette réponse (la deuxième proposition)

 

Par contre pas de cumulée ! En mixant avec la réponse de (gile) devrait pouvoir se faire...

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

merci pour vos réponse,

gile, kan j je copie ton lisp:

je peux choisir l'arc,

juste aprés lors de la sélection du pt de départ voilà le message

"Sélectionnez le point de départ: nil"

 

ca coince! :(

Avant de savoir courir if faut savoir marcher

Posté(e)

re,

m^m en me servant des accrochage, ca coince juste aprés la sélection

c pas grave; j'me suis arrangé otrement

 

je commence a prendre gout à vos travaux sur le lisp

c'est trés intérréssant, j'ai plein d'objectifs à mettre en place pour gagner du temps,

je pense que je reviendrai te demander de l'aide d'ici peu.

Avant de savoir courir if faut savoir marcher

Posté(e)

Peut-être un problème de SCU différent du SCG ?

Je modifie le code ci-dessus : ajout d'expression (trans ...), de points temporaires et de message d'erreur.

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

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é