Đến nội dung


Hình ảnh

Lisp móng


  • Please log in to reply
10 replies to this topic

#1 phamhung12

phamhung12

    biết vẽ ellipse

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

Đã gửi 30 June 2014 - 07:07 PM

Mình tìm được lisp vẽ mặt cắt móng. Cách dùng :

  1/ Bề rộng móng
  2/ Bề rộng cổ móng
  3/ Chiều cao bên móng
  4/ Chiều cao phần nghiêng
  5/ Chiều cao cổ móng
  6/ Bề dày lớp bảo vệ
  7/ Đường kính thép
  8/ Số lượng thép đáy móng
  9/ Lớp Bê tông lót

 10/ S.lượng thép ngang dầm móng

 11/ S.lượng thép dọc dầm móng --> Vẽ

Nhờ bác Tot77 hoặc các bác nào giỏi Lisp phát triển thêm phần Hatch kiểu "AR-CONC" cho hình chữ nhật của lớp Bê tông lót

đồng thời làm cái hộp thoại nhập số liệu chứ nhập kiểu này hơi bị rối :( . Thanks!


  • 0

#2 phamhung12

phamhung12

    biết vẽ ellipse

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

Đã gửi 30 June 2014 - 07:08 PM

 ;;Ham ve mc cac thanh thep
(defun mcthep (pd pc d n)
 (setq old (getvar "osmode"))
 (setvar "osmode" 0)
 (setq kc (/ (- (distance pd pc) d) (- n 1)))
 (command ".line" pd pc "")
 
 (setq  a (angle pd pc)
  pd (list (+ (car pd) (/ d 2)) (+ (cadr pd) (/ d 2)))
 )
 
 (repeat n
  (command ".donut" 0 d pd c^)
  (setq pd(polar pd a kc))
 )
 ;;(command ".donut" 0 d (polar pc (+ a (* pi 0.75)) d) c^)
 (setvar "osmode" old)
)
;;Ham ve thep dai va thep chiu luc cua dam mong
(defun vdai (p1 a b n1 n2 d)
 (setq old (getvar "osmode"))
 (setvar "osmode" 0)
 (command ".rectangle" p1 (list (+ (car p1) a) (+ (cadr p1) b)))
 (setq  kc (/ (- a d) (- n1 1))
  p1 (list (+ (car p1) (/ d 2)) (+ (cadr p1) (/ d 2)))
 )
 ;(princ n1)
 (setq p p1)
 (repeat n1
  (command ".donut" 0 d p c^)
  (setq p (polar p 0 kc))
 );end of repeat1
 (setq p (polar p1 (/ pi 2) (- b d)))
 (repeat n1
  (command ".donut" 0 d p c^)
  (setq p (polar p 0 kc))
 );end of repeat2
 (setq  kc (/ (- b d) (- n2 1)))
 (setq p (polar p1 (/ pi 2) kc))
 (repeat (- n2 1)
  (command ".donut" 0 d p c^)
  (setq p (polar p (/ pi 2) kc))
 );end of repeat3
 (setq p (polar p1 0 (- a d)))
 (setq p (polar p (/ pi 2) kc))
 (repeat ( - n2 1)
  (command ".donut" 0 d p c^)
  (setq p (polar p (/ pi 2) kc))
 );end of repeat4
 
 (setvar "osmode" old)
)
;; Chuong trinh chinhs vex mc mongs
(defun c:mcm ()
	(initget 1 "MC MB")
   (setq res (getkword "\n<M.BANG/M.COT><MB/MC>:"))
 (setq   p1 (getpoint "\nDiem chen:")
  l1 (getreal "\nBe rong mong:")
  l2 (getreal "\nBe rong co mong:")
  l3 (/ (- l1 l2) 2)
  h1 (getreal "\nChieu cao ben mong:")
  h2 (getreal "\nChieu cao phan nghieng:")
  h3 (getreal "\nChieu cao co mong:")
  bv (getreal "\nBe day lop bao ve:")
  d (getreal "\nDuong kinh thep:")
  n (getint "\nS.luong thep day mong:")
 l (getreal "\nLop Be tong lot:")
 )
 (setq old (getvar "osmode"))
 (setvar "osmode" 0)
 (setq p (polar p1 pi l))
 (setq p (polar p (/ (- 0 pi) 2) l))
 (command  ".rectangle" p (list (+ (car p) ( * 2 l) l1) (+ (cadr p) l)))
 (command  ".pline" p1 "W" 0 0 (setq p (polar p1 (/ pi 2) h1)) (setq p (list (+ (car p) l3) (+ (cadr p) h2))) (setq p (polar p (/ pi 2) h3)) ""
 )
 (command ".mirror" "l" "" (setq p (polar p1 0 (/ l1 2))) (setq p (polar p (/ pi 2) (/ l1 2))) "")
 
 (IF (= res "MB")
  (progn
   (setq pd (list (+ (car p1) bv) (+ (cadr p1) bv))
   	pc (polar pd 0 (* (- l1 (* 4 bv) l2) 0.5))
 )
  (mcthep pd pc d (fix (* n 0.5)))
 
  (command ".line" pc (setq pc (polar pc 0 (+ l2 (* 2 bv))))  "")
  (setq pd (polar pd 0 (- l1 (* 2 bv))))
 
 (mcthep pc pd d (fix (* n 0.5)))
   (setq  p (list (+ (car p1) l3 bv) (+ (cadr p1) d bv))
	a (- l2 (* 2 bv))
	b (- (+ h1 h2 h3) (* 2 bv) d)
	n1 (getint "\nS.luong thep ngang dam mong:")
	n2 (getint "\nS.luong thep doc dam mong:")
   )
   (vdai p a b n1 n2 d)
  );end of progn1
  (progn
 	(setq pd (list (+ (car p1) bv) (+ (cadr p1) bv))
  pc (polar pd 0 (- l1 (* 2 bv)))
 )
 (mcthep pd pc d n)
   (setq p (list (+ (car p1) l3 bv (- 0 (* 10 d))) (+ (cadr p1) (* 2 d) bv))); end of setq
   (command ".pline" p "W" 0 0  (setq p (polar p 0 (* 10 d)))
	(setq p (polar p (/ pi 2) (+ h1 h2 h3 (* 20 d) (- 0 (* 2 d)  bv))))
	(setq p (polar p (/ (- 0 pi) 4) (* 2 d))) ""
   ); end of co
   (command ".mirror" "l" "" (setq p (polar p1 0 (/ l1 2))) (setq p (polar p (/ pi 2) (/ l1 2))) ""  ); end of co
  );end of progn2
 
 ); end of if
 (setvar "osmode" old)
)


  • 0

#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 01 July 2014 - 10:53 PM

Hề hề hề,

Hãy dùng thử cái nài coi đã ưng ý chưa nhé.

1/- Download file mcm-dcl.lsp và file Nhapdulieumong.rar về và chép vào cùng một thư mục trong đường dẫn tìm kiếm của CAD. Sau đó xả file nén ra thành file Nhapdulieumong.dcl trong cùng thư mục

2/- load file mcm-dcl.lsp vào file cad cần dùng.

3/- chạy lệnh mcm như bạn đã từng chạy líp mcm.lsp

http://www.cadviet.c...5194_mcmdcl.lsp

http://www.cadviet.c...pdulieumong.rar

 

PS: file lisp chưa khử biến nên bạn lưu ý khi sử dụng, tránh trường hợp bị trùng biến với các lisp khác.


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

#4 phamhung12

phamhung12

    biết vẽ ellipse

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

Đã gửi 02 July 2014 - 10:49 AM

1/- Download file mcm-dcl.lsp và file Nhapdulieumong.rar về và chép vào cùng một thư mục trong đường dẫn tìm kiếm của CAD. Sau đó xả file nén ra thành file Nhapdulieumong.dcl trong cùng thư mục

2/- load file mcm-dcl.lsp vào file cad cần dùng.

3/- chạy lệnh mcm như bạn đã từng chạy líp mcm.lsp

PS: file lisp chưa khử biến nên bạn lưu ý khi sử dụng, tránh trường hợp bị trùng biến với các lisp khác.

Xin chân thành cám ơn bác phamthanhbinh đã hổ trợ. Nhưng bác Bình ơi lisp mcm-dcl.lsp không download được phiền bác up lại dùm. Mình hơi bị dốt cái món lisp nên khi bác nói file lisp chưa khử biến gì gì đó hơi bị phân vân...Khi load các lisp chạy mỗi thằng sử dụng có tên riêng, v dụ như mcm.lsp thì đánh mcm, cd.lsp thì đánh cd... sao lại có trùng biến với các lisp khác hà bác Bình :huh: ?


  • 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 02 July 2014 - 12:13 PM

Xin chân thành cám ơn bác phamthanhbinh đã hổ trợ. Nhưng bác Bình ơi lisp mcm-dcl.lsp không download được phiền bác up lại dùm. Mình hơi bị dốt cái món lisp nên khi bác nói file lisp chưa khử biến gì gì đó hơi bị phân vân...Khi load các lisp chạy mỗi thằng sử dụng có tên riêng, v dụ như mcm.lsp thì đánh mcm, cd.lsp thì đánh cd... sao lại có trùng biến với các lisp khác hà bác Bình :huh: ?

Hề hề hề,

1/- Trang upload của diễn đàn dạo này quá tệ. Mình gửi bạn link khác qua meiafile:

http://www.mediafire...mqm/mcm-dcl.lsp

2/- Việc gõ mcm hay cd trên dòng command chỉ là gọi tên chương trình cần chạy.

Việc trùng biến xảy ra khi các chướng trình với mục đích khác nhau nhưng sử dụng chung một tên biến, nhưng sau khi sử dụng các biến này không bị triệt tiêu và vẫn lưu giữ trong máy. Vì vậy khi chạy chương trình khác thì các biến này gây lỗi do không tương tích với chương trình cần chạy.

Do chương trình gốc bạn gửi không khử biến nên mình cũng không thực hiện việc khử biến vì có thể việc khử biến này sẽ ảnh hưởng tới nhu cầu sử dụng lại các biến này của bạn.

Nếu bạn thấy cần thiết thì mình sẽ thêm đoạn code để khử các biến này sau khi chương trình chạy xong.


  • 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 phamhung12

phamhung12

    biết vẽ ellipse

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

Đã gửi 02 July 2014 - 03:01 PM

Bác Bình ơi! SAu khi mình test lisp của bác thì thấy : Khi d (duong kinh thep) <1 thì bị lỗi. Khi d>= 1 : (gửi file test đính kèm). Nhờ bác đề cập đến vụ khử biến mà mình mới để ý: té ra lâu lâu chạy các file lisp thì nó không thực hiện, phải tắt Cad rồi mở lên load lại thì mới chạy (mình nghĩ chắc đây là nguyên do bác nói, trước đây cứ nghĩ Cad bị lỗi sao ý)... Vậy bác giúp mình thêm đoạn code để khử các biến vào lisp cũ (sẵn thêm code chọn màu như bản vẽ) để mình mở mang thêm chút kiến thức nha :) . Thanks!

http://www.cadviet.c...cmongbang_1.dwg


  • 0

#7 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 02 July 2014 - 03:59 PM

Bác Bình ơi! SAu khi mình test lisp của bác thì thấy : Khi d (duong kinh thep) <1 thì bị lỗi. Khi d>= 1 : (gửi file test đính kèm). Nhờ bác đề cập đến vụ khử biến mà mình mới để ý: té ra lâu lâu chạy các file lisp thì nó không thực hiện, phải tắt Cad rồi mở lên load lại thì mới chạy (mình nghĩ chắc đây là nguyên do bác nói, trước đây cứ nghĩ Cad bị lỗi sao ý)... Vậy bác giúp mình thêm đoạn code để khử các biến vào lisp cũ (sẵn thêm code chọn màu như bản vẽ) để mình mở mang thêm chút kiến thức nha :) . Thanks!

http://www.cadviet.c...cmongbang_1.dwg

Hề hề hề,

Do trang upload của diễn đàn hoạt động cà giựt, bạn gửi lại file qua trang upload khác 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.

#8 phamhung12

phamhung12

    biết vẽ ellipse

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

Đã gửi 02 July 2014 - 04:22 PM

http://www.cadviet.c..._mcmongbang.rar

Nén lại rar xem !!!


  • 0

#9 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 02 July 2014 - 09:26 PM

http://www.cadviet.c..._mcmongbang.rar

Nén lại rar xem !!!

Hề hề hề,

1/- Việc bạn nhập dữ liệu với các số giá trị không nguyên lisp sẽ báo lỗi là đương nhiên bởi lisp mình sửa chỉ cho nhập các số nguyên.

Tại sao bạn lại phải nhập đường kính tép là số nhỏ hơn 1??? Phải chăng vì bạn muốn vẽ với tỷ lệ nhỏ (VD: 1/20 như hình bạn gửi). Nếu vậy giải pháp cực kỳ đơn giản là bạn hãy vẽ nó với tỷ lệ là 1:1 rồi sau đó chỉ cần scale một phát là OK.

Sở dĩ mình sửa lisp để chỉ cho nhập số nguyên là vì theo mình nghĩ nên vẽ bản vẽ ở tỷ lệ 1:1 là tốt nhất vì nó đảm bảo độ chính xác của bản vẽ. Sau đó bạn muốn in bản vẽ ở tỷ lệ nào thì sử dụng layout sẽ tốt hơn cho việc quản lý và hệ thống hoá công việc.

Để có thể nhập dữ liệu là các số thực thì phải chỉnh sửa lại lisp một chút, nhưng mình không muốn sửa nữa.

2/- Đã bổ sung việc khử biến và đặt màu cho thép + bê tông.

http://www.mediafire...mqm/mcm-dcl.lsp


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

#10 phamhung12

phamhung12

    biết vẽ ellipse

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

Đã gửi 02 July 2014 - 10:16 PM

Được bác Bình hỗ trợ như vầy quý hóa quá rồi... Nhờ bác mà mình có khái niệm chút đỉnh về cái vụ "biến biến gì đó" :) . Thank you very much!!! :D


  • 0

#11 minhquanktct112

minhquanktct112

    Chưa sử dụng CAD

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

Đã gửi 08 November 2016 - 09:28 AM

Hề hề hề,

1/- Việc bạn nhập dữ liệu với các số giá trị không nguyên lisp sẽ báo lỗi là đương nhiên bởi lisp mình sửa chỉ cho nhập các số nguyên.

Tại sao bạn lại phải nhập đường kính tép là số nhỏ hơn 1??? Phải chăng vì bạn muốn vẽ với tỷ lệ nhỏ (VD: 1/20 như hình bạn gửi). Nếu vậy giải pháp cực kỳ đơn giản là bạn hãy vẽ nó với tỷ lệ là 1:1 rồi sau đó chỉ cần scale một phát là OK.

Sở dĩ mình sửa lisp để chỉ cho nhập số nguyên là vì theo mình nghĩ nên vẽ bản vẽ ở tỷ lệ 1:1 là tốt nhất vì nó đảm bảo độ chính xác của bản vẽ. Sau đó bạn muốn in bản vẽ ở tỷ lệ nào thì sử dụng layout sẽ tốt hơn cho việc quản lý và hệ thống hoá công việc.

Để có thể nhập dữ liệu là các số thực thì phải chỉnh sửa lại lisp một chút, nhưng mình không muốn sửa nữa.

2/- Đã bổ sung việc khử biến và đặt màu cho thép + bê tông.

http://www.mediafire...mqm/mcm-dcl.lsp

bác Bình thêm 1 đoạn mã cốt thép chủ cổ cột nữa thì quá tuyệt vời


  • 0