Đến nội dung


Hình ảnh

3d trong cad, solid !


  • Please log in to reply
1 reply to this topic

#1 kts_k80

kts_k80

    biết zoom

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

Đã gửi 17 March 2009 - 06:22 AM

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.
Hình đã gửi
Đâ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.
  • 0

#2 tuannguyen314169

tuannguyen314169

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 297 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 17 March 2009 - 03:22 PM

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