Aller au contenu

Placement blocs


Messages recommandés

Invité ingoenius
Posté(e)

Suite a ce post

http:// http://cadxp.cadmag.info/modules.php?op=modload&name=XForum&file=viewthread&tid=26738

 

Je cherche a faire un lisp qui placerait des blocs "Anneau" (diametre de l'anneau 0.04)

de la façon suivante

 

sélection des point de début et fin d'une ligne

placement des blocs a une distance établie de 0.2 entre centres anneaux,

distance en Y de la ligne sélectionne avant de 0.05 et placement du maximum de bloc possibles centres sur la distance calculée au début de ligne,

 

J'ai fait au début de script, mais il fonctionne seulement pour une ligne horizontale et dans la vue top ;-(

 

comment modifier pour pouvoir sélectionner aussi des lignes inclinées ou verticales et aussi en partant d'une vue face ou cote?

 

ici le fichier de travail

http://dl.free.fr/ivQWwDprk

 

et ici le debut du lisp

 

(defun c:oei()				;piazz i blocchi anello PARTE BASSA

 (setq DTR (/ PI 180))			;fattore di moltiplicazione x gradi verso radianti  pi é Pi greco!
 (setq DESTRA (* 0 DTR))		;traduzione del comando polar  
 (setq SINISTRA (* 180 DTR))		;traduzione del comando polar 
 (setq SU (* 90 DTR))			;traduzione del comando polar 
 (setq GIU (* 270 DTR))		;traduzione del comando polar 
 (setq DIAG (* 45 DTR))		;traduzione del comando polar




 (setvar "osmode" 3)
 (setq P0 (getpoint "\nDebut Ligne\n"))

 (command "_line" P0 pause "")
 (setq linea (entlast))		;nom poliligne

 (setq F (entget linea))
 (setq P2 (ASSOC 11 F))		;list coord cod dxf 11

 (setq xP2 (cadr P2))
 (setq yP2 (caddr P2))
 (setq zP2 (cadddr P2))

 (setq PP (list xP2 yP2 zP2))
 (setq DIST (distance P0 PP))	;dist

 (setq Diam_anello 0.04)
 (setq Demidiam (/  Diam_anello 2.0))
 (setq Distbache 0.03)
 (Setq MoveAnello (+ Demidiam Distbache))
 (setq DistA 0.2)
 (setq DistB 0.16)
 (setq DistR (- Dist (* 2.0 Moveanello)))
 
 (setq Q (fix(+ 1.0(/ DistR DistA)))) 
 (setq anelli (* Q Diam_anello))
 (setq spazi(* DistB (- Q 1.0)))
 (setq occupato (+ anelli spazi))
 (setq spost1 (+ Demidiam (/ (- Dist occupato)2.0)))
 (setq spost2 0.05)

 (setq P3 (polar P0 DESTRA spost1))
 (setq P3 (polar P3 SU spost2))

 (setq Blocco "Anello")
 (command "_-insert" Blocco P3  "" "" "")
 (setq An (entlast))
 (command "reseau" An "" "R" 1 Q  0.2  "")
 )

 

merci a tous

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é