Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
thanhsitp

nhờ các cao thủ viết dùm lisp hatch,ve thang cat.

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

hatch:

lisp 1:khi nhập lệnh h thì tự chuyển layer hatch và xuất hiện hợp thoại hatch cho chọn vật liệu và hatch bình thường như lệch hatch của cad.

lisp 2:khi nhập lệnh hh thì tự chuyển layer hatch và cho ta hatch = mặt cắt solid (lưu ý:không xuất hiện hộp thoại hatch,chỉ cần nhập lệnh tự chuyển layer hatch,pick chon miền,enter->được hatch solid)

 

vẽ thang cắt:

khi nhập lệnh,pick 2 điểm cad tự tính ra chiều cao của thang,pick điểm bắt đầu,nhập bề rộng bậc và số bật->ta duoc thang cắt (lưu ý:vì pick 2 điểm(chiều cao của tầng)nên chiều cao thang có thể lẽ nên lisp này là tối ưu nhất)

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
hatch:

lisp 1:khi nhập lệnh h thì tự chuyển layer hatch và xuất hiện hợp thoại hatch cho chọn vật liệu và hatch bình thường như lệch hatch của cad.

lisp 2:khi nhập lệnh hh thì tự chuyển layer hatch và cho ta hatch = mặt cắt solid (lưu ý:không xuất hiện hộp thoại hatch,chỉ cần nhập lệnh tự chuyển layer hatch,pick chon miền,enter->được hatch solid)

 

vẽ thang cắt:

khi nhập lệnh,pick 2 điểm cad tự tính ra chiều cao của thang,pick điểm bắt đầu,nhập bề rộng bậc và số bật->ta duoc thang cắt (lưu ý:vì pick 2 điểm(chiều cao của tầng)nên chiều cao thang có thể lẽ nên lisp này là tối ưu nhất)

Mình chỉnh đoạn lisp của Tue_VN bạn dùng cho hatch còn thang thì chờ người khác ha bạn.

(defun c:h(/ ov vl)

(setq vl '("clayer" "cmdecho"); Sys Var list

ov (mapcar 'getvar vl)); Get Old values

(setvar "cmdecho" 1)

(if (tblsearch "layer" "Hatch")

(setvar "CLAYER" "Hatch")

(command "-layer" "M" "Hatch" "" ) )

(initdia)

(command "hatch")

(while (< 0 (getvar "CMDACTIVE"))

(command pause)

)

(mapcar 'setvar vl ov); reset Sys Vars

(princ)

)

 

(defun c:hh(/ ov vl)

(setq vl '("clayer" "cmdecho"); Sys Var list

ov (mapcar 'getvar vl)); Get Old values

(setvar "cmdecho" 1)

(if (tblsearch "layer" "Hatch")

(setvar "CLAYER" "Hatch")

(command "-layer" "M" "Hatch" "" ) )

(setvar "hpname" "SOLID")

(command "-hatch")

(while (< 0 (getvar "CMDACTIVE"))

(command pause)

)

(mapcar 'setvar vl ov); reset Sys Vars

(princ)

)

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
Mình chỉnh đoạn lisp của Tue_VN bạn dùng cho hatch còn thang thì chờ người khác ha bạn.

(defun c:h(/ ov vl)

(setq vl '("clayer" "cmdecho"); Sys Var list

ov (mapcar 'getvar vl)); Get Old values

(setvar "cmdecho" 1)

(if (tblsearch "layer" "Hatch")

(setvar "CLAYER" "Hatch")

(command "-layer" "M" "Hatch" "" ) )

(initdia)

(command "hatch")

(while (< 0 (getvar "CMDACTIVE"))

(command pause)

)

(mapcar 'setvar vl ov); reset Sys Vars

(princ)

)

 

(defun c:hh(/ ov vl)

(setq vl '("clayer" "cmdecho"); Sys Var list

ov (mapcar 'getvar vl)); Get Old values

(setvar "cmdecho" 1)

(if (tblsearch "layer" "Hatch")

(setvar "CLAYER" "Hatch")

(command "-layer" "M" "Hatch" "" ) )

(setvar "hpname" "SOLID")

(command "-hatch")

(while (< 0 (getvar "CMDACTIVE"))

(command pause)

)

(mapcar 'setvar vl ov); reset Sys Vars

(princ)

)

lisp của bạn sử dụng được nhưng mình vẫn chưa hài lòng.mình muốn khi sử dụng lệnh h và hh thì layer hatch sẽ hiện hành trước rồi mới thực hiện lệnh.tại vì khi sử dụng lệnh của bạn dlick vào hatch thì tab hatch muc swatch nó là màu của layer đang hiện hành trước đó chứ ko phải by layer của layer hatch nên mình ko thể sử dụng được.Rất mong bạn sửa lại dùm (vì đó là quy định của cty mình).Xin chân thành cảm ơn bạ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

Chài

Chú này "được voi đòi Hai Bà Trưng" ghê nhỉ

Chú làm công ty nước ngoài lãnh tiền đô USD

Anh em CadViet lãnh tiền Việt, sao bì chú được

Thế mà chú đòi hỏi a e viết nhiều quá

Thôi bữa nào

:(

a e bày hết tuyệt chiêu cho nhé

keke

  • 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 của bạn sử dụng được nhưng mình vẫn chưa hài lòng.mình muốn khi sử dụng lệnh h và hh thì layer hatch sẽ hiện hành trước rồi mới thực hiện lệnh.tại vì khi sử dụng lệnh của bạn dlick vào hatch thì tab hatch muc swatch nó là màu của layer đang hiện hành trước đó chứ ko phải by layer của layer hatch nên mình ko thể sử dụng được.Rất mong bạn sửa lại dùm (vì đó là quy định của cty mình).Xin chân thành cảm ơn bạn.

Lạ nhỉ.Mình thấy có ảnh hưởng j đâu.Trong lisp này thì trước khi thực hiện lệnh h,hh,cad đều chuyển layer về layer hatch,rồi hatch xong lại trả về layer cũ mà.CÒn khi kick đúp vào miền hatch,nếu là hatch bình thường,thì tab swatch sẽ hiện lên kiểu hatch chứ ^^.Còn với solid,nó sẽ ghi By layer.Nhưng mình thì nghĩ,đã solid rồi thì by layer nào mà khi in ra nó chẳng...đen thùi lùi 1 đống.Miễn là màu của nó khi hiển thị là màu của layer hatch là okie rùi..

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
Lạ nhỉ.Mình thấy có ảnh hưởng j đâu.Trong lisp này thì trước khi thực hiện lệnh h,hh,cad đều chuyển layer về layer hatch,rồi hatch xong lại trả về layer cũ mà.CÒn khi kick đúp vào miền hatch,nếu là hatch bình thường,thì tab swatch sẽ hiện lên kiểu hatch chứ ^^.Còn với solid,nó sẽ ghi By layer.Nhưng mình thì nghĩ,đã solid rồi thì by layer nào mà khi in ra nó chẳng...đen thùi lùi 1 đống.Miễn là màu của nó khi hiển thị là màu của layer hatch là okie rùi..

 

bạn thông cảm,đó là qui định của khàng,bạn làm ơn sửa lại cái hatch solid dùm mình nha.cảm ơn nhiều.

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
hatch:

lisp 1:khi nhập lệnh h thì tự chuyển layer hatch và xuất hiện hợp thoại hatch cho chọn vật liệu và hatch bình thường như lệch hatch của cad.

lisp 2:khi nhập lệnh hh thì tự chuyển layer hatch và cho ta hatch = mặt cắt solid (lưu ý:không xuất hiện hộp thoại hatch,chỉ cần nhập lệnh tự chuyển layer hatch,pick chon miền,enter->được hatch solid)

 

vẽ thang cắt:

khi nhập lệnh,pick 2 điểm cad tự tính ra chiều cao của thang,pick điểm bắt đầu,nhập bề rộng bậc và số bật->ta duoc thang cắt (lưu ý:vì pick 2 điểm(chiều cao của tầng)nên chiều cao thang có thể lẽ nên lisp này là tối ưu nhất)

Bạn có thể dùng cái vẽ mặt vắt thang này do mình viết.

Mình là KTS giống như bao KTS khác đều ngại vẽ mặt cắt cầu thang. Chính vì vậy mình muốn xây dựng lisp để làm công việc này được nhanh chóng thuận lợi.

Mình đã xây dựng được code như thế này. Mong các bạn đóng góp ý kiến thêm để mình hoàn chỉnh.

thang.jpg

đây là code

(defun c:cat ()
(setvar "cmdecho" 0)
(setq old_layer (getvar "clayer"))
(setq tbl (tblsearch "layer" "_cat"))
(if (= tbl nil) (command "-layer" "n" "_cat" "c" "4" "_cat" ""))
(setq tbl1 (tblsearch "layer" "_hatch"))
(if (= tbl1 nil) (command "-layer" "n" "_hatch" "c" "8" "_hatch" ""))
(setq tbl2 (tblsearch "layer" "_thay"))
(if (= tbl2 nil) (command "-layer" "n" "_thay" "c" "23" "_thay" ""))
(setvar "clayer" "_cat")
(setq pc1 (getpoint "\nChon diem thu nhat: "))
(setq pc2 (getpoint "\nChon diem thu hai: " pc1))
(command "-view" "s" "v1")
(setq p (getpoint "\nChon diem de ve mat cat: "))
(command "-view" "s" "v2")
(setq ct (getreal "\nVao chieu cao tang: "))
(setq sb1 (getint "\nVao so bac: "))
(command "-view" "r" "v1")
(setq catb (ssget "f" (list pc1 pc2)))
(setq i 0)
(setq listpoint nil)
(setq listbac nil)
(while (< i (sslength catb))
(setq n (ssname catb i))
(setq pl1 (cdr (assoc 10 (entget n))))
(setq pl2 (cdr (assoc 11 (entget n))))
(setq pcat (inters pc1 pc2 pl1 pl2))
(setq listpoint (append listpoint (list pcat)))
(setq i (1+ i))
)
(setq i1 0)
(setq sb 0)
(while (< (1+ i1) (length listpoint))
(setq po1 (nth i1 listpoint))
(setq po2 (nth (1+ i1) listpoint))
(setq bac (distance po1 po2))
(setq listbac (append listbac (list bac)))
(if (equal (nth 0 (reverse listbac)) (nth 1 (reverse listbac)))
(setq sb (+ i1 2))
)
(setq i1 (1+ i1))
)
(vethangthang)
)

(defun vethangthang ()
(setq nb 20.0 bk 10.0
MBTong1 "ANSI32" tl1 100 angh1 0
MBTong2 "ar-conc" tl2 10 angh2 0
MBTong3 "ANSI31" tl3 200 angh3 0
MBTong4 "ar-sand" tl4 4 angh4 0
r (car listbac)
c (/ ct sb1)
d 100
oldos (getvar "osmode")
di (* sb (sqrt (+ (* c c) (* r r))))
ang (atan (/ c r))
p01 (polar p 0 10)
p02 (polar p01 (/ (* 270 pi) 180) 20)
p03 (polar p02 ang (/ 20 (sin ang)))
p2 (polar p02 ang di)
p22 (polar p2 (/ (* 90 pi) 180) 20)
p222 (polar p22 (/ (* 180 pi) 180) 10)
p3 (polar p03 0 (/ d (sin ang)))
p33 (polar p02 0 (/ d (sin ang)))
p4 (polar p2 (/ (* 3 pi) 2) (/ d (cos ang))) 
dibt (/ 10 (cos ang))
pbt1 p02
pbt3 (polar p02 ang (/ (distance p02 p2) sb) ) 
pbt2 (list (car pbt1) (cadr pbt3) 0)
pbt4 (polar pbt2 (/ (* 90 pi) 180) 10)
)
(setvar "osmode" 0 )
(command "-view" "r" "v2")
(command ".pline")
(command p)
(repeat sb
(command
(strcat "@0," (rtos (- c (* 2.0 bk))))
(strcat "@" (rtos (- bk nb)) ",0")
"a"
(strcat "@0," (rtos (* 2.0 bk)))
"l"
(strcat "@" (rtos (+ (- nb bk) r)) ",0")
)
)
(command "")
(setvar "cmdecho" 0)
(command "line" p p01 "")
(setq el4 (entlast))
(command "pline" pbt1 pbt2 pbt3 "C")
(setq eL1 (entlast))
(command "hatch" MBTong3 tl3 angh3 eL1 "")
(command "change" "l" "" "p" "la" "_hatch" "")
(setq eL2 (entlast))
(command "line" pbt3 (list (car p) (cadr pbt3) 0) "")
(setq eL3 (entlast))
(command "ucs" "z" p02 p2)
(command "ARray" el1 el2 el3 el4 "" "R" "1" sb (/ di sb))
(command "ucs" "")
(command "-BOUNDARY" pbt4 "")
(setq eL5 (entlast))
(command "rectang" p pbt2)
(setq eL6 (entlast))
(command "hatch" MBTong4 tl4 angh4 eL5 "")
(command "change" "l" "" "p" "la" "_hatch" "")
(setq eL8 (entlast))
(command "hatch" MBTong4 tl4 angh4 el6 "")
(command "change" "l" "" "p" "la" "_hatch" "")
(setq eL7 (entlast))
(command "ucs" "z" p02 p2)
(command "ARray" eL5 eL6 el7 el8 "" "R" "1" sb (/ di sb))
(command "ucs" "")
(vethangcong)
(setvar "osmode" oldos)
(setvar "clayer" old_layer)
(princ)
) 

(defun vethangcong ()
(setq goc01 (polar p ang di))
(setq i2 sb)
(setq ptt goc01)
(while (< i2 (length listbac))
(setq rbc (nth i2 listbac))
(command ".pline")
(command ptt)
(command
(strcat "@0," (rtos (- c (* 2.0 bk))))
(strcat "@" (rtos (- bk nb)) ",0")
"a"
(strcat "@0," (rtos (* 2.0 bk)))
"l"
(strcat "@" (rtos (+ 10 rbc)) ",0")
""
)
(setq ptt1 (polar ptt (/ (* 90 pi) 180) (- c (* 2.0 bk))))
(setq ptt2 (polar ptt1 0 10))
(setq ptt3 (polar ptt2 (/ (* 90 pi) 180) 10))
(command "rectang" ptt ptt2)
(command "hatch" MBTong4 tl4 angh4 "l" "")
(command "change" "l" "" "p" "la" "_hatch" "")
(command ".pline")
(command ptt1)
(command
(strcat "@" (rtos (+ 10 rbc)) ",0")
(strcat "@0," (rtos (* 2.0 bk)))
(strcat "@" (rtos (- bk nb)) ",0")
""
)
(setq ptt (getvar "lastpoint"))
(command "-hatch" ptt3 "")
(command "change" "l" "" "p" "la" "_hatch" "")
(setq i2 (1+ i2))
)
(setq pocuoi (polar ptt (/ (* 270 pi) 180) (/ (* c 2) 3)))
(setq pocuoi1 (polar pocuoi (/ (* 270 pi) 180) (/ (* c 2) 3)))
(command ".pline" p02 p2 "a" pocuoi "")
(setq noi1 (entlast))
(command "offset" "100" noi1 pocuoi1 "")
(setq noi2 (entlast))
(setq popcuoi (cdr (assoc 10 (reverse (entget noi2)))))
(setq popdau (cdr (assoc 10 (entget noi2))))
(command ".pline")
(command p02)
(command
(strcat "@-200,0")
(strcat "@0,-300")
(list (car popdau) (- (cadr p02)300))
)
(command popdau "")
(command "")
(setq noi3 (entlast))
(command ".pline" pocuoi popcuoi "")
(setq noi4 (entlast))
(command "pedit" noi1 "j" noi1 noi2 noi3 noi4 "" "")
(setq banbt (entlast))
(command "hatch" MBTong1 tl1 angh1 banbt "")
(command "change" "l" "" "p" "la" "_hatch" "")
(command "hatch" MBTong2 tl2 angh2 banbt "")
(command "change" "l" "" "p" "la" "_hatch" "")
(command "line" ptt pocuoi "")
(setq pohatch (polar goc01 0 20))
(command "-hatch" "p" MBTong3 tl3 angh3 pohatch "")
(command "change" "l" "" "p" "la" "_hatch" "")
)

  • Vote tăng 1
  • Vote giảm 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

Còn cái vẽ thang này đúng ý của bạn

Buồn quá có việc bận nên không offline cùng anh em cadviet được. Thật là tiếc!!!

Ngồi buồn quá dở cái lisp vẽ thang của bác hoành ra sửa lại tí chút cho đúng cấu tạo.

tiện thể port lên đây cho anh em nào cần thì nhậu.

lisp này kết hợp với lisp vẽ lan can sắt của mình thì rất tiện.

(defun c:vtb (/ p c r sb oldos nb bk MBTong1 tl1 angh1 MBTong2 tl2 angh2
MBTong3 tl3 angh3 d oldos di ang p2 p3 p4 dibt pbt1 
pbt2 pbt3 el1 el2 el3 ans)
(setvar "cmdecho" 0)
(setq old_layer (getvar "clayer"))
(setq tbl (tblsearch "layer" "_cat"))
(if (= tbl nil) (command "-layer" "n" "_cat" "c" "4" "_cat" ""))
(setq tbl1 (tblsearch "layer" "_hatch"))
(if (= tbl1 nil) (command "-layer" "n" "_hatch" "c" "8" "_hatch" ""))
(setq tbl2 (tblsearch "layer" "_thay"))
(if (= tbl2 nil) (command "-layer" "n" "_thay" "c" "23" "_thay" ""))
(setvar "clayer" "_cat")
(setq nb 20.0 bk 10.0
MBTong1 "ANSI32" tl1 100 angh1 0
MBTong2 "ar-conc" tl2 10 angh2 0
MBTong3 "ANSI31" tl3 200 angh3 0
MBTong4 "ar-sand" tl4 4 angh4 0
p (getpoint "\nVao diem dau tien: ")
c (getdist p "\nVao chieu cao bac: ")
r (getdist p "\nVao chieu rong bac: ")
sb (getint "\nVao so bac: ")
d (getdist "\nVao be day ban thang be tong : ")
oldos (getvar "osmode")
di (* sb (sqrt (+ (* c c) (* r r)) ))
ang (atan (/ c r))
p01 (polar p 0 10)
p02 (polar p01 (/ (* 270 pi) 180) 20)
p03 (polar p02 ang (/ 20 (sin ang)))
p2 (polar p02 ang di)
p22 (polar p2 (/ (* 90 pi) 180) 20)
p222 (polar p22 (/ (* 180 pi) 180) 10)
p3 (polar p03 0 (/ d (sin ang)))
p33 (polar p02 0 (/ d (sin ang)))
p4 (polar p2 (/ (* 3 pi) 2) (/ d (cos ang))) 
dibt (/ 10 (cos ang))
pbt1 p02
pbt3 (polar p02 ang (/ (distance p02 p2) sb) ) 
pbt2 (list (car pbt1) (cadr pbt3) 0)
pbt4 (polar pbt2 (/ (* 90 pi) 180) 10)
)
(setvar "osmode" 0 )
(command ".pline")
(command p)
(repeat sb
(command
(strcat "@0," (rtos (- c (* 2.0 bk))))
(strcat "@" (rtos (- bk nb)) ",0")
"a"
(strcat "@0," (rtos (* 2.0 bk)))
"l"
(strcat "@" (rtos (+ (- nb bk) r)) ",0")
)
)
(command "")
(setq thay (entlast))
(initget "C K")
(setq ans (getkword "\n Ban muon cat qua cau thang hay khong < C / K > :"))
(if (= ans "K")
(progn
(command "pline" p p3 p4 p2 p22 p222 "")
(command "change" "l" "" "p" "la" "_thay" "")
(command "change" thay "" "p" "la" "_thay" "")
)
)
(if (= ans "C") 
(progn
(setvar "cmdecho" 0)
(command "line" p p01 "")
(setq el4 (entlast))
(command "pline" p02 p33 p4 p2 "c")
(setq eL (entlast))
(command "hatch" MBTong1 tl1 angh1 eL "")
(command "change" "l" "" "p" "la" "_hatch" "")
(command "hatch" MBTong2 tl2 angh2 eL "")
(command "change" "l" "" "p" "la" "_hatch" "")
(command "pline" pbt1 pbt2 pbt3 "C")
(setq eL1 (entlast))
(command "hatch" MBTong3 tl3 angh3 eL1 "")
(command "change" "l" "" "p" "la" "_hatch" "")
(setq eL2 (entlast))
(command "line" pbt3 (list (car p) (cadr pbt3) 0) "")
(setq eL3 (entlast))
(command "ucs" "z" p02 p2)
(command "ARray" el1 el2 el3 el4 "" "R" "1" sb (/ di sb))
(command "ucs" "")
(command "-BOUNDARY" pbt4 "")
(setq eL5 (entlast))
(command "rectang" p pbt2)
(setq eL6 (entlast))
(command "hatch" MBTong4 tl4 angh4 eL5 "")
(command "change" "l" "" "p" "la" "_hatch" "")
(setq eL8 (entlast))
(command "hatch" MBTong4 tl4 angh4 el6 "")
(command "change" "l" "" "p" "la" "_hatch" "")
(setq eL7 (entlast))
(command "ucs" "z" p02 p2)
(command "ARray" eL5 eL6 el7 el8 "" "R" "1" sb (/ di sb))
(command "ucs" "")
)
)
(setvar "osmode" oldos)
(setvar "clayer" old_layer)
(princ)
)

  • Vote tăng 3

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
Còn cái vẽ thang này đúng ý của bạn

 

Mấy cái LISP vẽ cầu thang thật lắm công phu nhưng hiệu quả không cao

 

Lý do chính nằm ở chỗ mấy cái lệnh của CAD (Copy, divide) không trực quan

CAD luôn luôn bắt người ta đưa ra con số chính xác thay vì giúp người vẽ tính toán trước khi quyết định con số đó.

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
bạn thông cảm,đó là qui định của khàng,bạn làm ơn sửa lại cái hatch solid dùm mình nha.cảm ơn nhiều.

Thế thì bạn bỏ hết mấy dòng lấy giá trị cũ của hatch đi như thế này

 

(defun c:hh(/ ov vl)
(setvar "cmdecho" 1) 
(if (tblsearch "layer" "Hatch")
(setvar "CLAYER" "Hatch")
(command "-layer" "M" "Hatch" "" ) )
(setvar "hpname" "SOLID") 
(command "-hatch")
(while ((command pause)
) 
(princ)
)

Lưu ý là nếu dùng lệnh -hatch thì sẽ khôg hiện hộp thoại hatch nữa,mà thao tác lệnh theo command ^^

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
Mấy cái LISP vẽ cầu thang thật lắm công phu nhưng hiệu quả không cao

 

Lý do chính nằm ở chỗ mấy cái lệnh của CAD (Copy, divide) không trực quan

CAD luôn luôn bắt người ta đưa ra con số chính xác thay vì giúp người vẽ tính toán trước khi quyết định con số đó.

Mình không hiểu ý bạn có thể nói rõ hơn được không để mình còn sửa

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
Mình không hiểu ý bạn có thể nói rõ hơn được không để mình còn sửa

:(

Đúng là nói cho rõ thì hơi dài dòng thật.

 

Bắt đầu bằng kết quả sau khi dùng vtb.lsp đi

Sau đi gõ lệnh, theo yêu cầu nhập vài thông số tôi được một mặt cắt của cầu thang trên màn hình khá chi tiết

Thoạt nhìn, rất công phu nhưng sau vài giây hồ hởi thì hàng loạt vấn đề phát sinh.

 

- Bản vẽ cho ra ở dạng lỡ cỡ (đơn giản thì không đơn giản, chi tiết thì lại không tới)

nếu vẽ đến Vật liệu hoàn thiện thì phải vẽ cả lớp vữa trát trần, vữa trát bậc,...

Thử đo độ dày bậc ngang hoàn thiện là 20, mặt đứng bậc là 10 (điều này chỉ thể hiện 01 trường hợp trong vô vàn trường hợp)

- Nếu cần biến đổi độ dày mặt đá từ 20 thành 25 thì đó cả là một công việc cực nhọc (stretch từng đối tượng), cứ thế biến đổi hình dạng đầu bậc,...

 

(Từ từ tôi sẽ viết tiếp 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
Thử đo độ dày bậc ngang hoàn thiện là 20, mặt đứng bậc là 10 (điều này chỉ thể hiện 01 trường hợp trong vô vàn trường hợp)

- Nếu cần biến đổi độ dày mặt đá từ 20 thành 25 thì đó cả là một công việc cực nhọc (stretch từng đối tượng), cứ thế biến đổi hình dạng đầu bậc,...

 

(Từ từ tôi sẽ viết tiếp nhé...)

Mình thấy trong code có đoạn cho phép nhập các thông số này mà..Nói chung là 1 lisp thì cũng khó có thể bao quát tất cả các trường hợp của KTS được,mình phải tùy biến theo ý mình thôi ^^

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
Mình thấy trong code có đoạn cho phép nhập các thông số này mà..Nói chung là 1 lisp thì cũng khó có thể bao quát tất cả các trường hợp của KTS được,mình phải tùy biến theo ý mình thôi ^^

 

Cho nên, nếu dùng Lisp sau đó phải đi chỉnh sửa thì thà dùng các lệnh cơ bản của CAD để vẽ lại đỡ phiền phức hơn

Nhưng điều đó cũng không thành vấn đề gì.

Vấn đề ở đây là chúng ta cứ chạy theo những gì CAD và thói quen người dùng và giải quyết nó theo lối mòn mà không thử lật ngược và tìm hướng giải quyết khác.

  • 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

Tiếp theo là vẽ cầu thang

-----------

Sau khi tính toán thì sẽ có một vị trí để đặt cầu thang

Khi quyết định được vị trí, đầu óc sẽ tiếp tục cân nhắc một loạt trước khi ra tay vẽ (tính toán mới là việc quan trọng)

Ví dụ: Hình dạng cầu thang (U, L, xoắn hay tự do?)

Dạng bản BTCT, xương cá hay...?

Gỗ, đá hay thép...?

Tiếp theo

Số bậc? bao nhiêu là vừa?

Tuân theo Sinh, lão bệnh tử hay là không?.

...

Sau khi quyết định, thường thì 100% ngươi ta sẽ vẽ MB cầu thang để tiện tính toán số bậc

 

Như thế, vẽ MB là bước mà ai cũng phải đi qua

Và bây giờ hãy thử xem CAD đã hỗ trợ người vẽ như thế nào?

 

Tôi có thể miêu tả trình tự như sau:

- Ban đầu bạn sẽ vẽ một đường bao (L, PL, A)

- Sau đó tuỳ theo quyết định bề rộng vế mà bạn sẽ Offset nó.

- Sau đó là chia bậc (Hàng loạt lệnh được áp dụng tại bước này nhưng không hiệu quả)

Nếu kết quả không mong muốn thì sẽ bắt đầu lại từ đường bao

 

Uống cà phê tí rồi tiếp 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
:(

Đúng là nói cho rõ thì hơi dài dòng thật.

 

Bắt đầu bằng kết quả sau khi dùng vtb.lsp đi

Sau đi gõ lệnh, theo yêu cầu nhập vài thông số tôi được một mặt cắt của cầu thang trên màn hình khá chi tiết

Thoạt nhìn, rất công phu nhưng sau vài giây hồ hởi thì hàng loạt vấn đề phát sinh.

 

- Bản vẽ cho ra ở dạng lỡ cỡ (đơn giản thì không đơn giản, chi tiết thì lại không tới)

nếu vẽ đến Vật liệu hoàn thiện thì phải vẽ cả lớp vữa trát trần, vữa trát bậc,...

Thử đo độ dày bậc ngang hoàn thiện là 20, mặt đứng bậc là 10 (điều này chỉ thể hiện 01 trường hợp trong vô vàn trường hợp)

- Nếu cần biến đổi độ dày mặt đá từ 20 thành 25 thì đó cả là một công việc cực nhọc (stretch từng đối tượng), cứ thế biến đổi hình dạng đầu bậc,...

 

(Từ từ tôi sẽ viết tiếp nhé...)

Đúng là lisp của mình còn nhiều hạn chế. Bạn chắc cũng là người viết lisp để xử lý chi tiết bằng lisp là không đơn giản chút nào. Với cái lisp này thể hiện trong mặt cắt thì tạm ổn còn bổ chi tiết thì không dùng được Cái này mình cũng biết. Thời gian tới sẽ nghiên cứu sâu hơn. Cám ơn bạn đã góp ý.

  • Vote giảm 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
Đúng là lisp của mình còn nhiều hạn chế. Bạn chắc cũng là người viết lisp để xử lý chi tiết bằng lisp là không đơn giản chút nào. Với cái lisp này thể hiện trong mặt cắt thì tạm ổn còn bổ chi tiết thì không dùng được Cái này mình cũng biết. Thời gian tới sẽ nghiên cứu sâu hơn. Cám ơn bạn đã góp ý.

 

Tôi không rành về lisp đâu. Nhưng trót "phản biện" về lisp nên vô tình "đắc tội" với một số cao thủ :s_big

Chúc bạn vui!

Hy vọng được tiếp tục phản biệ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
lisp của bạn sử dụng được nhưng mình vẫn chưa hài lòng.mình muốn khi sử dụng lệnh h và hh thì layer hatch sẽ hiện hành trước rồi mới thực hiện lệnh.tại vì khi sử dụng lệnh của bạn dlick vào hatch thì tab hatch muc swatch nó là màu của layer đang hiện hành trước đó chứ ko phải by layer của layer hatch nên mình ko thể sử dụng được.Rất mong bạn sửa lại dùm (vì đó là quy định của cty mình).Xin chân thành cảm ơn bạn.

Chả hiểu làm sdao cho bạn hài lòng nửa vì 2 lisp trên điều đã chuyển layer hatch về hiện hành thực hiện xong mới chuyển về layer cũ mà.

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

Bạn có thể dùng cái vẽ mặt vắt thang này do mình viết.

BÁC CHO EM XIN CÁI LÍP VỀ THANG CỦA BÁC NHÉ  GỬI VÀO MAIL HỘ EM ad.pham2304@gmail.com CẢM ƠN BÁC NHIỀU LẮM

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  

×