Chuyển đến nội dung
Diễn đàn CADViet
CE PHAT

Viết lisp Tiết diện chử I420x260x6x10 chỉ cần gõ I,420,260,6,10 là ra như hình vẽ

Các bài được khuyến nghị

I_zps344497f0.png

Em nhờ mấy bác viết giùm e lisp này
Chỉ cần gõ lệnh 
1.TD enter
2.Bạn nhập thông số tiết diên : Và ta nhập : I,420,260,6,10 enter
3.Sẽ có tiết diện thép I như hình vẽ có nét hach lun,khỏi cần dường dim và text

 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Lisp vẽ thép I như bạn miêu tả ở trên:


(defun C:td(/ p1 h w bt wt p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12)
  (setq echo (getvar 'cmdecho)
os (getvar 'osmode)
la (getvar 'clayer))
  (setvar 'cmdecho 0)
  (setvar 'osmode 0)
  (command ".layer" "make" "beamlisp"
  "c" "4" ""
  "lw" "0.3" ""
  "l" "continuous" "" "")   
  (setq p1 (getpoint "\nSpecify the left bottom corner of beam:")
h (getdist "\nSpecify the height:")
w (getdist "\nSpecify the width:")
bt (getdist "\nSpecify beam thickness:")
wt (getdist "\nSpecify web thickness:"))
  (setq p2 (strcat "@" (rtos w) ",0")
p3 (strcat "@0," (rtos bt))
p4 (strcat "@" (rtos (-(- w (* w 0.5) (* wt 0.5)))) ",0")
p5 (strcat "@0," (rtos (- h (* 2 bt))))
p6 (strcat "@" (rtos (- w (* w 0.5) (* wt 0.5))) ",0")
p7 (strcat "@0," (rtos bt))
p8 (strcat "@" (rtos (- 0 w)) ",0")
p9 (strcat "@0," (rtos (- 0 bt)))
p10 (strcat "@" (rtos (- w (* w 0.5) (* wt 0.5))) ",0")
p11 (strcat "@0," (rtos (- (- h (* 2 bt)))))
p12 (strcat "@" (rtos (-(- w (* w 0.5) (* wt 0.5)))) ",0"))
  (command ".pline" p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p1 "")
  (command ".layer" "make" "hatchlisp"
  "c" "57" ""
  "lw" "0.13" ""
  "l" "continuous" "" "")
  (command ".hatch" "ansi31" "2" "90" "f" p1 p3  "" "")   
  (setvar 'cmdecho echo)
  (setvar 'osmode os)
  (setvar 'clayer la)
  (princ)
  )  
  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Lisp vẽ thép I như bạn miêu tả ở trên:

(defun C:td(/ p1 h w bt wt p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12)

  (setq echo (getvar 'cmdecho)

os (getvar 'osmode)

la (getvar 'clayer))

  (setvar 'cmdecho 0)

  (setvar 'osmode 0)

  (command ".layer" "make" "beamlisp"

  "c" "4" ""

  "lw" "0.3" ""

  "l" "continuous" "" "")   

  (setq p1 (getpoint "\nSpecify the left bottom corner of beam:")

h (getdist "\nSpecify the height:")

w (getdist "\nSpecify the width:")

bt (getdist "\nSpecify beam thickness:")

wt (getdist "\nSpecify web thickness:"))

  (setq p2 (strcat "@" (rtos w) ",0")

p3 (strcat "@0," (rtos bt))

p4 (strcat "@" (rtos (-(- w (* w 0.5) (* wt 0.5)))) ",0")

p5 (strcat "@0," (rtos (- h (* 2 bt))))

p6 (strcat "@" (rtos (- w (* w 0.5) (* wt 0.5))) ",0")

p7 (strcat "@0," (rtos bt))

p8 (strcat "@" (rtos (- 0 w)) ",0")

p9 (strcat "@0," (rtos (- 0 bt)))

p10 (strcat "@" (rtos (- w (* w 0.5) (* wt 0.5))) ",0")

p11 (strcat "@0," (rtos (- (- h (* 2 bt)))))

p12 (strcat "@" (rtos (-(- w (* w 0.5) (* wt 0.5)))) ",0"))

  (command ".pline" p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p1 "")

  (command ".layer" "make" "hatchlisp"

  "c" "57" ""

  "lw" "0.13" ""

  "l" "continuous" "" "")

  (command ".hatch" "ansi31" "2" "90" "f" p1 p3  "" "")   

  (setvar 'cmdecho echo)

  (setvar 'osmode os)

  (setvar 'clayer la)

  (princ)

  )  

Hề hề hề,

Xin góp ý tí xíu:

1/- Thực ra không cần đặt thêm các biến p2, p3, ....., p12 mà chỉ cần nhét luôn các (strcat .....) vào trong hàm (command "pline" .....)

2/- Khi kết thúc vẽ đường bao này nên dùng "c" chứ không nên dùng p1 bởi khi đó sẽ đảm bảo cho pline đóng kín và dễ dàng hatch.

3/- Nên có (command "undo" "be") và (command "undo" "e") để người dùng thuận tiện khi cần sửa chữa thay đổi hình vẽ.

@ Chủ thớt: Hình như cái tiết diện này theo quy chuẩn đặc biệt của chủ thớt thì phải. Cẩn thận, đừng để sự sáng tạo làm hỏng các quy định về việc thiết kế dầm và có thể dẫn tới những hậu quả đáng tiếc.

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

:D  :D  :D Thank Mr Bình đã góp ý

1. Em mới tập viết code nên chia ra các p cho dễ trị, và copy các điểm giống nhau cho nhanh cũng như dễ kiểm tra lỗi.

2. Trong trường hợp này em ngĩ P1 và C là 1, còn thật sự bản chất của nó khác thế nào thì em cũng không rõ.

3. Sẽ rút kinh nghiệm cho lần sau  :D

4. Em đoán chủ thớt chỉ cần tiết diện của hình để làm hình chiếu hoặc đưa ra thông số tượng trưng của từng loại dầm, không có ý nghĩa trong việc tính toán chính xác, thi công thực tế nên không ảnh hưởng tới kết quả,

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

:D  :D  :D Thank Mr Bình đã góp ý

1. Em mới tập viết code nên chia ra các p cho dễ trị, và copy các điểm giống nhau cho nhanh cũng như dễ kiểm tra lỗi.

2. Trong trường hợp này em ngĩ P1 và C là 1, còn thật sự bản chất của nó khác thế nào thì em cũng không rõ.

3. Sẽ rút kinh nghiệm cho lần sau  :D

4. Em đoán chủ thớt chỉ cần tiết diện của hình để làm hình chiếu hoặc đưa ra thông số tượng trưng của từng loại dầm, không có ý nghĩa trong việc tính toán chính xác, thi công thực tế nên không ảnh hưởng tới kết quả,

Hề hề hề,

Về cái sự khác nhau giữa "c" và p1 thì bạn có thể kiểm tra lại trong mã dxf của pline được tạo ra.

Với "c" thì mã dxf 70 sẽ là 1 tức là chỉ rằng pline kín.

Với p1 mã này có thể là 0 tức là pline chưa kín. Khi đó hatch hay boundary có thể sẽ không cho kết quả như ý bạn ạ.

Ấy là do kinh nghiệm của các bác khác truyền lại, mình chỉ hiểu nôm na là vậy, còn chi tiết kỹ càng hơn nữa, bạn có thể tham khảo bác Ketxu xem nhé.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Nghe rất có lý, chắc là đúng rồi. P1 là 2 điểm chập nhau, còn C thì tại đó chỉ có 1 điểm. có thể hiểu nôm na là như vậy. kakaka

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Hề hề hề,

@ Chủ thớt: Hình như cái tiết diện này theo quy chuẩn đặc biệt của chủ thớt thì phải. Cẩn thận, đừng để sự sáng tạo làm hỏng các quy định về việc thiết kế dầm và có thể dẫn tới những hậu quả đáng tiếc.

 

Chắc là chủ thớt làm cái tiết diện ấy theo quy chuẩn mầy mò ...tập viết lisp.

Trong thực tế sản xuất chẳng có ai dại dột chơi cái mặt cắt kiểu  ...rửa tiền như thế!

Đây là hình ảnh một Dinamic Blocks thép I  cũng chẳng theo một tiêu chuẩn nào cả:

 

114276_th%C3%A9p_i.jpg

 

File : http://www.cadviet.com/upfiles/3/114276_annotation__metricdwg.dwg

 

Nó nằm trong thư mục Sample của AutoCAD có từ AutoCAD2007 trở lại đây:

 

114276_aaas77.jpg

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Chỉ cần gọi lệnh ToolPalettes (lệnh tắt Ctrol+3) rồi vô mục Strucctrure là có Block thép W-beam à....

 


 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay


×