Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
7 replies to this topic

#1 CE PHAT

CE PHAT

    Chưa sử dụng CAD

  • Members
  • Pip
  • 1 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 03 September 2013 - 11:36 AM

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

 


  • 0

#2 Namvanvo

Namvanvo

    Edu level: li5

  • Members
  • PipPipPipPipPip
  • 386 Bài viết
Điểm đánh giá: 42 (tàm tạm)

Đã gửi 03 September 2013 - 09:40 PM

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)
  )  


  • 1

#3 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 04 September 2013 - 02:41 PM

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.


  • 2
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#4 Namvanvo

Namvanvo

    Edu level: li5

  • Members
  • PipPipPipPipPip
  • 386 Bài viết
Điểm đánh giá: 42 (tàm tạm)

Đã gửi 04 September 2013 - 03:48 PM

: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ả,


  • 0

#5 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 04 September 2013 - 04:15 PM

: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é.


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#6 Namvanvo

Namvanvo

    Edu level: li5

  • Members
  • PipPipPipPipPip
  • 386 Bài viết
Điểm đánh giá: 42 (tàm tạm)

Đã gửi 04 September 2013 - 04:24 PM

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


  • 0

#7 Hoan1111

Hoan1111

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2587 Bài viết
Điểm đánh giá: 692 (tốt)

Đã gửi 04 September 2013 - 10:10 PM

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.c...__metricdwg.dwg

 

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

 

114276_aaas77.jpg


  • 0

66 Câu Phật Học Cho Cuộc Sống : http://ngocchinh.com...-cho-cuoc-song/

Gió đưa cây cải về trời / Rau răm ở lại chịu lời đắng cay...

 

 


#8 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 05 September 2013 - 06:24 AM

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 à....

 


 


  • 0