Aller au contenu

Cotation de longueur d\'arc


lordbyron

Messages recommandés

Salut,

 

Je ne pense pas qu'on puisse modifier les angles des lignes d'attache.

Mais j'avais fait un LISP pour coter les longueurs d'arc (pour les versions antérieures à 2006). Ce LISP utilisant la commande "_dimangular" il affiche des lignes d'attache rayonnantes.

 

;;; DIM_ARC Cotation de la longueur d'un arc

;;; Redéfinition de *error*
(defun STD_ERR (msg)
 (if (or
(= msg "Fonction annulée")
(= msg "quitter / sortir abandon")
     )
   (princ)
   (princ (strcat "\nErreur: " msg))
 )
 (command)
 (command "_undo" "_end")
 (RESTORE_VAR)
 (setq	*error*	m:err
m:err nil
 )
 (princ)
)

;;; SAVE&SET_VAR & RESTORE_VAR
;;;
;;; SAVE&SET_VAR Enregistre la valeur initiale de la variable système dans une liste associative
;;; et lui attribue sa nouvelle valeur
;;; ex: (SAVE&SET_VAR "osmode" 0) -> !varlist (("osmode" . 43)) (getvar "osmode") 0
(defun SAVE&SET_VAR (var value)
 (if (getvar var)
   (progn
     (setq varlist (cons (cons var (getvar var)) varlist))
     (setvar var value)
   )
   (princ (strcat "\nErreur: variable AutoCAD rejetée: " var))
 )
)

;;; RESTORE_VAR Restaure leurs valeurs initiales aux variables système de "varlist"
(defun RESTORE_VAR ()
 (foreach pair	varlist
   (if	(/= (getvar (car pair)) (cdr pair))
     (setvar (car pair) (cdr pair))
   )
 )
 (setq varlist nil)
)

;;; ANGARC Retourne l'angle décrit par un arc de cercle.

(defun ANGARC (arc / ang)
 (setq	ang (- (cdr (assoc 51 (entget (car arc))))
       (cdr (assoc 50 (entget (car arc))))
    )
 )
 (if (minusp ang)
   (setq ang (+ (* 2 pi) ang))
 )
 ang
)

;;; Fonction principale

(defun c:dim_arc (/ arc arl)
 (setq	m:err	*error*
*error*	STD_ERR
 )
 (command "_undo" "_begin")
 (princ "Dim_arc")
 (while (/= (cdr
       (assoc 0
	      (entget (car (setq arc (entsel "\nChoisissez un arc: "))))
       )
     )
     "ARC"
 )
   (princ "\nL'objet sélectionné n'est pas un arc.")
 )
 (setq	arl (rtos (* (ANGARC arc) (cdr (assoc 40 (entget (car arc)))))
	  (getvar "lunits")
	  (getvar "dimdec")
    )
 )
 (SAVE&SET_VAR "cmdecho" 0)
 (command "_dimangular" arc "_text" arl pause)
 (command "_undo" "_end")
 (RESTORE_VAR)
 (setq	*error*	m:err
m:err nil
 )
 (princ)
)

 

NOTA : Cette cote n'est pas associative : un étirement de l'arc ne génère pas de changement du texte de cote (çà reste du bricolage)

 

[Edité le 9/11/2005 par (gile)]

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

Lien vers le commentaire
Partager sur d’autres sites

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é