Aller au contenu

etrier


philippe62

Messages recommandés

bonjour

j'aurai besoin d'aide pour créer le bloc avec ces attributs et ensuite l'insérer

merciETRIER.LSP

 

 

 

 

;;version 15 09 2013

;;

;; PHILIPPE B

(defun c:ETRIER (/ pdir l1 l2 p1 R dn d1 d2 sv_dm dm poi prix af ht it ETRIER)

(command "_undo" "_be")

(setq p1 (getpoint "\nPoint de départ de l'etrier :"))

(if p1 (setq pdir (getpoint p1 "\n direction de l'étrier <>: ")))

(cond

((and p1 pdir)

(command "_ucs" "_zaxis" "_none" p1 "_none" pdir)

(setq p1 '(0. 0. 0.))

)

)

 

(initget "Autre 10 15 20 25 32 40 50 65 80 100 125 150 200 250 300")

(setq dn (getkword "\n dn [10/15/20/25/32/40/50/65/80/100/125/150/200/250/300]:"))

(cond

((= dn "10") (setq dn 17.2) (setq l2 27.4) (setq d1 6) (setq poi 0.020) (setq prix 0.82)) ((= dn "15") (setq dn 21.3) (setq l2 29.35) (setq d1 6)) ((= dn "20") (setq dn 26.9) (setq l2 36.55) (setq d1 8))

((= dn "25") (setq dn 33.7) (setq l2 38.15) (setq d1 8)) ((= dn "32") (setq dn 42.4) (setq l2 46.8) (setq d1 8)) ((= dn "40") (setq dn 48.3) (setq l2 45.85) (setq d1 8))

((= dn "50") (setq dn 60.3) (setq l2 49.85) (setq d1 8)) ((= dn "65") (setq dn 76.1) (setq l2 61.95) (setq d1 8)) ((= dn "80") (setq dn 88.9) (setq l2 70.55) (setq d1 10))

((= dn "100") (setq dn 114.3) (setq l2 98.85) (setq d1 10)) ((= dn "125") (setq dn 139.7) (setq l2 104.15) (setq d1 10)) ((= dn "150") (setq dn 168.3) (setq l2 118.85) (setq d1 12))

((= dn "200") (setq dn 219.1)) ((= dn "250") (setq dn 273)) ((= dn "300") (setq dn 323.9))

((= dn "Autre") (setq dn (getdist "\nDiamètre en mm:")))

(t (princ))

)

(setq l1 (+ dn d1))

(command "_pline"

(list (- (nth 0 p1) (/ l1 2)) (- (nth 1 p1) l2) (nth 2 p1))

(list (- (nth 0 p1) (/ l1 2)) (nth 1 p1) (nth 2 p1))

"_A"

"_CE"

p1

"_A"

-180

"_LI"

(list (+ (nth 0 p1) (/ l1 2)) (- (nth 1 p1) l2) (nth 2 p1))

"")

(setq ss1 (entlast))

(setq R (/ d1 2))

(command "_circle" p1 R)

(setq ss2 (entlast))

(command "_sweep" ss2 "" "_L" ss1)

)

 

 

 

j'aimerai pouvoir transformer le solide en un bloc ETRIER avec l'attribut DN correspondant merci pour votre aide

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Je t'ai fait la modification, mais testé rapidement. Fait quand même attention à ce que tu recopies, j'ai fait vite et je n'ai pas tout bien nettoyé.

 

;;version 09 12 2013 
;;         
;; PHILIPPE B 
(defun c:ETRIER (/ pdir l1 l2 p1 R dn d1 d2 sv_dm dm poi prix af ht ETRIER diam_n st)

 (setq  p1 (getpoint "\nPoint de départ de l'etrier  :"))
(if p1 (setq pdir (getpoint p1 "\n direction de l'étrier <>: ")))
 (cond
   ((and p1 pdir)
     (command "_ucs" "_zaxis" "_none" p1 "_none" pdir)
     (setq p1 '(0. 0. 0.))
   )
 )

(initget "Autre 10 15 20 25 32 40 50 65 80 100 125 150 200 250 300")      
(setq diam_n (setq dn (getkword "\n dn [10/15/20/25/32/40/50/65/80/100/125/150/200/250/300]:")))
       (cond 
         ((= dn "10") (setq dn 17.2) (setq l2 27.4) (setq d1 6) (setq poi 0.020) (setq prix 0.82)) ((= dn "15") (setq dn 21.3) (setq l2 29.35) (setq d1 6)) ((= dn "20") (setq dn 26.9) (setq l2 36.55) (setq d1 8)) 
         ((= dn "25") (setq dn 33.7) (setq l2 38.15) (setq d1 8)) ((= dn "32") (setq dn 42.4) (setq l2 46.8) (setq d1 8)) ((= dn "40") (setq dn 48.3) (setq l2 45.85) (setq d1 8))
         ((= dn "50") (setq dn 60.3) (setq l2 49.85) (setq d1 8)) ((= dn "65") (setq dn 76.1) (setq l2 61.95) (setq d1 8)) ((= dn "80") (setq dn 88.9) (setq l2 70.55) (setq d1 10))
         ((= dn "100") (setq dn 114.3) (setq l2 98.85) (setq d1 10)) ((= dn "125") (setq dn 139.7) (setq l2 104.15) (setq d1 10)) ((= dn "150") (setq dn 168.3) (setq l2 118.85) (setq d1 12))
         ((= dn "200") (setq dn 219.1)) ((= dn "250") (setq dn 273)) ((= dn "300") (setq dn 323.9)) 
((= dn "Autre") (setq dn (getdist "\nDiamètre en mm:")))
(t (princ))               
)

(setq nomb (strcat "ETRIER_DN" diam_n))
(if (tblsearch "block"  nomb) ;; recherche bloc dans dessin
    
    ;;;; insertion bloc
    (command "_-insert" nomb "_non" '(0. 0. 0.) "" "" "0" )
     
   (progn  ;; le bloc n´existe pas
 ;;;; creation solide 3 d
(setvar "cmdecho" 0)
(setq l1 (+ dn d1))
(command "_pline"
(list (- (nth 0 p1) (/ l1 2)) (- (nth 1 p1) l2) (nth 2 p1))
(list (- (nth 0 p1) (/ l1 2)) (nth 1 p1) (nth 2 p1))
"_A"
"_CE"
p1
"_A"
-180
"_LI"
(list (+ (nth 0 p1) (/ l1 2)) (- (nth 1 p1) l2) (nth 2 p1))
"")
(setq ss1 (entlast))
(setq R (/ d1 2))
(command "_circle" p1 R)
(setq ss2 (entlast))
(command "_sweep" ss2 "" ss1)

(setq etrier (entlast))

;; création attributs
 
    (setq st (getvar "textstyle"))
    (setvar "textstyle" "standard")  
    (setq af (getvar "aflags"))           
    (setq ht (* 0.07 dn )) ; hauteur texte
    
    (setvar "aflags" 9)  ;;; prédéfini et invisible   
    (command "_-attdef" "" "Désignation" "Désignation" (strcat "ETRIER DN" diam_n)  "_non" '(0. 0. 0.)  ht "0")   
    (setq att1 (entlast))
    (setvar "aflags" af) (setvar "textstyle" st)

;; création bloc
 (command "_change" att1 etrier "" "_p" "_la" "0" "_c" "DUBLOC" "")
 (command "_-block" nomb "_non" '(0. 0. 0.) att1 etrier  "")
;;;; insertion bloc
  (command "_-insert" nomb "_non" '(0. 0. 0.) "" "" "0" )
  (setvar "cmdecho" 1)
)
)

 
(prin1)
)




Modifié par usegomme
Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

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é