Chuyển đến nội dung
Diễn đàn CADViet
Học AutoCAD Online cùng CADViet
Đăng nhập để thực hiện theo  
kts_k80

3d trong cad, solid !

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

Mình thích cad, bởi giao diện đơn giản nhất trong các phần mềm, kể cả 2d lẫn 3d. Cũng giống như Ghost, giao diện trên dos, đơn giản và hiệu quả vô cùng. Trên cad, 3d solid được vẽ chính xác, và xuất ngay thành 2d các mặt chiếu, thêm ghi chú và kích thước, thành chi tiết cho bản vẽ kiến trúc. Nếu thiết kế nội thất, dùng cách này khỏi vẽ lại các bức tường trang trí, là một công việc rất chán...vì mỗi phòng có đến 4 bức tường. còn vẽ mặt đứng thì công việc 2d mặt đứng nhanh ...cực.

Bởi thế, hầu như 3d mình toàn dựng trong cad. Không chỉ tường, cửa, vv, mà cả đồ đạc thiết bị nữa.

Mình viết một cái lip vẽ ghế salon, dùng trong cad. Ai thích thì dùng.

salon.jpg

Đây là sản phẩm của nó.

(defun C:SALON () ;ghesalon

(smod)

(setvar "osmode" 0)

(if (= nil (tblsearch "layer" "L-WALL"))

(command "layer" "m" "L-WALL" "c" "t" "249,250,251" "" "")

)

(if (= nil (tblsearch "layer" "WINDOR"))

(command "layer" "m" "WINDOR" "c" "t" "77,47,40" "" "")

)

(setq p1a (getpoint "\nDAU GHE TAI CHO DUA :"))

(setq p2a (getpoint P1a"\nCUOI GHE TAI CHO DUA :"))

(setq ang1 (angle p1a p2a))

(setq p1 (polar p1a ang1 100))

(setq p2 (polar p2a (angle p2a p1a) 100))

(setq p12 (polar p1a ang1 (/ (distance p1a p2a) 2)))

(setq ang2 (getangle p12 ":\nHUONG RA BAN :"))

(setq p1b (polar p1 ang2 200))

(setq p1ab (polar p1a ang2 600))

(setq p1c (polar p1 ang2 700))

(setq p2b (polar p2 ang2 600))

(setq p1ab (polar p1a ang2 600))

(command "layer" "s" "L-WALL" "")

(srf p1c p2 275 60 75)

(srf p1b p2 250 30 350)

(command "layer" "s" "WINDOR" "")

(command "rectangle" (polar p1c (angle p1c p1b) 50) p2)

(command "extrude" "l" "" "75" "")

(command "rectangle" p1 (polar p2 (angle p1c p1b) 50))

(command "extrude" "l" "" "400" "")

(SRF P2b (polar p2a (angle p1c p1b) 50) 500 20 0)

(srf p1ab (polar p1 (angle p1c p1b) 50) 500 20 0)

(rmod)

)

;----------------------------------------------------------------------------------------------

 

(defun SRF (P1 P2 HRF FL MRF) ;solid rec fillet,...

(setvar "osmode" 0)

(setvar "filletrad" FL)

(setq p3 (list (car p1)(cadr p2)))

(setq p4 (list (car p2)(cadr p1)))

(setq p32 (polar p3 (angle p3 p2) HRF))

(setq p24 (polar p2 (angle p2 p4) HRF))

(setq pm13 (polar p1 (angle p1 p3) (/ (distance p1 p3) 2)))

(setq pm32 (polar p3 (angle p3 p2) (/ (distance p3 p2) 2)))

(command "line" pm13 (polar pm13 (angle p3 p2)(distance p3 p2)) "")

(setq e1 (entlast))

(command "line" pm32 (polar pm32 (angle p3 p1)(distance p3 p1)) "")

(setq e2 (entlast))

(command "rectangle" p1 p2 "fillet" "p" p1)

(command "extrude" "l" "" HRF "")

(setq e11 (entlast))

(command "rectangle" p1 p32 "fillet" "p" p1)

(setq e3 (entlast))

(command "rectangle" p3 p24 "fillet" "p" p3)

(setq e4 (entlast))

(cond

((and (< (car p1) (car p2))(< (cadr p1) (cadr p2)))

(progn

(command "rotate3d" e3 "" p3 p1 "90")

(command "extrude" e3 "" "p" e1)

(setq e3 (entlast))

(command "rotate3d" e4 "" p2 p3 "90")

(command "extrude" e4 "" "p" e2)

(setq e4 (entlast))

(command "intersect" e3 e4 e11 "" "move" "l" "" p1 (list (car p1)(cadr p1) MRF))

)

)

((and (< (car p1) (car p2))(> (cadr p1) (cadr p2)))

(progn

(command "rotate3d" e3 "" p3 p1 "-90")

(command "extrude" e3 "" "p" e1)(setq e3 (entlast))

(command "rotate3d" e4 "" p2 p3 "-90")

(command "extrude" e4 "" "p" e2)(setq e4 (entlast))

(command "intersect" e3 e4 e11 "" "move" "l" "" p1 (list (car p1)(cadr p1) MRF))

)

)

((and (> (car p1) (car p2))(> (cadr p1) (cadr p2)))

(progn

(command "rotate3d" e3 "" p3 p1 "90")

(command "extrude" e3 "" "p" e1)(setq e3 (entlast))

(command "rotate3d" e4 "" p2 p3 "90")

(command "extrude" e4 "" "p" e2)(setq e4 (entlast))

(command "intersect" e3 e4 e11 "" "move" "l" "" p1 (list (car p1)(cadr p1) MRF))

)

)

((and (> (car p1) (car p2))(< (cadr p1) (cadr p2)))

(progn

(command "rotate3d" e3 "" p3 p1 "-90")

(command "extrude" e3 "" "p" e1)(setq e3 (entlast))

(command "rotate3d" e4 "" p2 p3 "-90")

(command "extrude" e4 "" "p" e2)(setq e4 (entlast))

(command "intersect" e3 e4 e11 "" "move" "l" "" p1 (list (car p1)(cadr p1) MRF))

)

)

)

(command "erase" e1 e2 "")

(setvar "filletrad" 0)

)

;---------------------------------------------------------------------------------------------

(defun SMOD ()

 

(if (/= nil (tblsearch "block" "$HSW"))

(setq HS (cdr (assoc 39 (entget(cdr(assoc -2 (tblsearch "block" "$HSW")))))))

(setq HS 3600)

)

(setq ORT (getvar "orthomode"))

(command "undo" "m")

(setq LAC (getvar "clayer"))

(setq OSM (getvar "osmode"))

(setvar "osmode" 703)

(setq LINALA (list (cdr (assoc 2 (tblnext "layer" T)))))

(while

(setq e (tblnext "layer"))

(setq LINALA (append LINALA (list (cdr (assoc 2 e)))))

)

(setq LINAOBJLA (list (tblobjname "layer" (cdr (assoc 2 (tblnext "layer" T))))))

(while

(setq e (tblnext "layer"))

(setq LINAOBJLA (append LINAOBJLA (list (tblobjname "layer" (cdr (assoc 2 e))))))

)

(setq LILACO (list (assoc 62 (tblnext "layer" T))))

(while

(setq e (tblnext "layer"))

(setq LILACO (append LILACO (list (assoc 62 e))))

)

(setq LILALO (list (assoc 70 (tblnext "layer" T))))

(while

(setq e (tblnext "layer"))

(setq LILALO (append LILALO (list (assoc 70 e))))

)

;(setvar "EXPERT" 5)

)

 

(defun RMOD ()

(mapcar

'(lambda (x y z)

(entmod (subst x (assoc 62 (entget y)) (entget y)))

(entmod (subst z (assoc 70 (entget y)) (entget y)))

)

LILACO LINAOBJLA LILALO

)

(setvar "osmode" OSM)

(setvar "clayer" LAC)

(setvar "orthomode" ORT)

(princ "* OK NUMBER ONE ! *")(princ)

)

 

(setq *error* AA_ERR)

(defun AA_ERR (s)

(if (= s "Function cancelled")

(progn

(command "qsave" "undo" "b")

(exit)

)

)

)

;--------------------------

Hàm (smod) và hàm (rmod) là hai hàm lưu giữ trạng thái trước khi làm việc và trả lại trạng thái sau khi làm việc các biến thay đổi do quậy linh tinh khi xây dựng đối tượng.

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

rất cảm ơn bác đã có những ý tưởng rất hay. Tôi mới nghiêng cứu autocad3D nhưng không sao cắt được mặt cong surface 3D . Mong Bác chỉ giúp. Cảm ơn

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

Đăng nhập để thực hiện theo  

×