Aller au contenu

Messages recommandés

Posté(e)

;;version 20 09 2013

;;

;; PHILIPPE B

(defun c:TUBE (/ p1 p2 dia dn rm)

(command "_undo" "_be")

(setq p1 (getpoint "\nPoint de départ du tube :"))

(setq p2 (getpoint p1 "\nPoint d'arrivée du tube :"))

(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 dia 17.2) (setq rm 25)) ((= dn "15") (setq dia 21.3) (setq rm 28)) ((= dn "20") (setq dn 26.9) (setq rm 28.5))

((= dn "25") (setq dia 33.7) (setq rm 38)) ((= dn "32") (setq dia 42.4) (setq rm 47.5)) ((= dn "40") (setq dia 48.3) (setq rm 57))

((= dn "50") (setq dia 60.3) (setq rm 76)) ((= dn "65") (setq dia 76.1) (setq rm 95)) ((= dn "80") (setq dia 88.9) (setq rm 114.5))

((= dn "100") (setq dia 114.3) (setq rm 152)) ((= dn "125") (setq dia 139.7) (setq rm 190)) ((= dn "150") (setq dia 168.3) (setq rm 228))

((= dn "200") (setq dia 219.1) (setq rm 304)) ((= dn "250") (setq dia 273) (setq rm 380 )) ((= dn "300") (setq dia 323.9) (setq rm 456))

 

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

(t (princ))

)

(command "_CYLINDER"

p1

"_D"

dia

"_C"

p2)

(prin1)

)

 

si quelqu'un peu m'aider à transformer le solide en bloc "TUBE_DN" d'avance merci!!!

 

)

Posté(e) (modifié)

Bonjour,

A tester.

 

;;version 09 12 2013 
;; 
;; PHILIPPE B 
(defun c:TUBE (/ p1 p2 dia dn rm lgt ss1 ss2 tube p2_SCG nle lda)

(setq p1 (getpoint "\nPoint de départ du tube :"))
(setq p2 (getpoint p1 "\nPoint d'arrivée du tube :"))
(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 dia 17.2) (setq rm 25)) ((= dn "15") (setq dia 21.3) (setq rm 28)) ((= dn "20") (setq dia 26.9) (setq rm 28.5)) 
((= dn "25") (setq dia 33.7) (setq rm 38)) ((= dn "32") (setq dia 42.4) (setq rm 47.5)) ((= dn "40") (setq dia 48.3) (setq rm 57))
((= dn "50") (setq dia 60.3) (setq rm 76)) ((= dn "65") (setq dia 76.1) (setq rm 95)) ((= dn "80") (setq dia 88.9) (setq rm 114.5))
((= dn "100") (setq dia 114.3) (setq rm 152)) ((= dn "125") (setq dia 139.7) (setq rm 190)) ((= dn "150") (setq dia 168.3) (setq rm 228))
((= dn "200") (setq dia 219.1) (setq rm 304)) ((= dn "250") (setq dia 273) (setq rm 380 )) ((= dn "300") (setq dia 323.9) (setq rm 456))

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

(setq lgt (distance p1 p2)) ;; longueur tube
(setq p2_scg (trans p2 1 0))
(command "_.ucs" "_non" p1  "_non" (trans p2_SCG 0 1 ) "")

(setq nomb (strcat "TUBE_DN" dn))
(if (not (tblsearch "block"  nomb)) ;; recherche bloc dans dessin 

    (progn  ;; le bloc n´existe pas 
      ;;;; creation solide 3 d 
      (setvar "cmdecho" 0) 
      (command "_line" "_non" '(0. 0. 0.) "_non" '(1. 0. 0.) "") 
      (setq ss1 (entlast))
      (command "_circle" '(0. 0. 0.) (* dia 0.5))
      (setq ss2 (entlast))
      (command "_sweep" ss2 "" ss1)
      (setq tube (entlast))

;; suppression de l'axe si:
     (if (or (= 0 (getvar "DELOBJ"))(= 1 (getvar "DELOBJ"))) (entdel SS1))

;; création attributs 
    (setq st (getvar "textstyle")) 
    (setvar "textstyle" "standard")   
    (setq af (getvar "aflags"))            
    (setq ht (* 0.07 dia )) ; hauteur texte 
     
    (setvar "aflags" 9)  ;;; prédéfini et invisible    
    (command "_-attdef" "" "Désignation" "Désignation" (strcat "TUBE DN" dn)  "_non" '(0. 0. 0.)  ht "0")    
    (setq att1 (entlast)) 
    (command "_-attdef" "" "LONG" "Longueur" ""  "_non" (polar '(0. 0. 0.)(* 1.5 pi)(+ 1.3 ht))  ht "0")    
    (setq att2 (entlast))
    (setvar "aflags" af) (setvar "textstyle" st)

;; création bloc 
   (command "_change" att1 att2 tube  "" "_p" "_la" "0" "_c" "DUBLOC" "")
   (command "_-block" nomb "_non" '(0. 0. 0.) att1 att2 tube  "")
  )
)

;;;; insertion bloc
   (command "._-insert" nomb "X" lgt "Y" 1 "Z" 1 "_non" '(0. 0. 0.) "0" ) 
   (setvar "cmdecho" 1)
    
;;;;;;;; modif attribut longueur du tube ;;;;;;;;;;;; 
     
       (setq nle (entlast))  
       (while
    (and
            (/= (cdr (assoc 2 (setq lda (entget (setq nle (entnext nle)))))) "LONG")
     (/= "SEQEND" (cdr (assoc 0 lda)))
    )
       )
       (setq lda (subst (cons 1 (rtos lgt 2 2)) (assoc 1 lda) lda))  ;liste données attribut
       (entmod lda)
       (entupd nle)           ;attribut LONG mise à jour
 
    


(prin1)
)






Modifié par usegomme
  • 1 mois après...
Posté(e)

Bonjour

même chose que pour etrier.lsp, j'ai fait une modif pour que le bloc soit créé sur le calque 0 et de la couleur DUBLOC.

 

;; création bloc  
   (command "_change" att1 att2 tube  "" "_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é