Aller au contenu

Messages recommandés

Posté(e)

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
Posté(e) (modifié)

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
  • 1 mois après...
Posté(e)

Bonjour

J'ai fait une petite modif pour que le bloc soit correctement créé sur le caque 0 et de la couleur DUBLOC.

C'est une remarque que m'a fait Philsogood à propos de mon lisp pour la tuyauterie 3D.

;; création bloc 
 (command "_change" att1 etrier "" "_p" "_la" "0" "_c" "DUBLOC" "")

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é