Aller au contenu

Messages recommandés

Posté(e)

Petit soucis

Dans une macro en lisp

Avec la commande mesurer « bloc » est il possible de donné un facteur d’echelle au bloc inseré.

merci

 

Vous fîtes ce que vous pûtes

et vous m'épatâtes !!!!

Posté(e)

Salut,

 

Une bidouille vite fait (aucun contrôle) :

 

Je crée un point avant l'insertion des blocs,

je fais un (entlast) pour récupérer le nom d'entité du point,

j'insère les blocs avec _measure,

je boucle avec (entnext) sur les entités créées après le point (les blocs)

et leur donne le facteur d'échelle spécifié.

 

(defun c:test (/ ent bl ali dist ech pt next)

 ;; Entrées utilisateur
 (setq	ent  (car (entsel "\Choix de l'objet à mesurer: "))
bl   (getstring "\nEntrez le nom du bloc à insérer: ")
)
 (initget "Oui Non")
 (setq	ali  (getkword "\nAligner le bloc avec l'objet ? [Oui/Non]:")
dist (getdist "\Spécifiez la longueur du segment: ")
ech  (getreal "\nSpécifiez le facteur d'échelle: ")
 )

 ;; Point de départ
 (command "_.point" '(0 0))
 (setq pt (entlast))

 ;; Insertion des blocs
 (command "_.measure" ent "b" bl ali dist)

 ;; Boucle pour affecter le facteur d'échelle
 (setq next (entnext pt))
 (while next
   (command "_scale"
     next
     ""
     (cdr (assoc 10 (entget next)))
     ech
   )
   (setq next (entnext next))
 )

 ;; Suppression du point
 (entdel pt)
 (princ)
) 

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

Posté(e)

barvo gile et je te remercie de ton aide

la fonction marche tres bien

cest entnext qui me manquais

y faut que je revise cette fonction

 

Vous fîtes ce que vous pûtes

et vous m'épatâtes !!!!

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é