legend_moon 1 Báo cáo bài đăng Đã đăng Tháng 5 2, 2018 Ở đây có ai làm shop hoàn thiện chắc đã từng hatch vùng diện tích theo kích thước viên gạch ( 300x600 hoặc abc*def ) rồi. H mình có ý tưởng là vẽ thêm mạch gạch vào ( mạch gạch là 2mm). Khi hatch chúng ta có thể tùy chỉnh kích thước viên gạch rồi rải đều trong vùng diện tích lát sàn. ( có tùy biến lát chéo và lát vòng cung ). Không biết có cao thủ nào đi qua chỉ điểm được khô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
Nguyen Hoanh 4.663 Báo cáo bài đăng Đã đăng Tháng 5 2, 2018 Mình vẫn hay dùng là: - Dùng hatch User Define - Chọn Space là khoảng cách giữa 2 mạch gạch (vd 302 hoặc 602) - Hatch mỗi chiều (dọc ngang) 1 loại hatch - Chọn hatch origin là điểm bắt đầu (viên lát chuẩn) 2 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
legend_moon 1 Báo cáo bài đăng Đã đăng Tháng 5 2, 2018 13 giờ trước, Nguyen Hoanh đã nói: Mình vẫn hay dùng là: - Dùng hatch User Define - Chọn Space là khoảng cách giữa 2 mạch gạch (vd 302 hoặc 602) - Hatch mỗi chiều (dọc ngang) 1 loại hatch - Chọn hatch origin là điểm bắt đầu (viên lát chuẩn) Mình cũng dùng cách này để hatch mà. nhưng vì mình muốn hatch nó thể hiện cả khoảng cách mạch gạch chứ ko phải để liền 1 nét như cậ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
Nguyen Hoanh 4.663 Báo cáo bài đăng Đã đăng Tháng 5 2, 2018 Bạn hatch 2 lần song song nhau, cách nhau (bằng cách chỉnh hatch origin) 2mm. 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
legend_moon 1 Báo cáo bài đăng Đã đăng Tháng 5 2, 2018 17 phút trước, Nguyen Hoanh đã nói: Bạn hatch 2 lần song song nhau, cách nhau (bằng cách chỉnh hatch origin) 2mm. Mình thử rồi bạn ợi.. làm thế khoảng cách sẽ bị cộng dồn nên ko chính xác 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
Nguyen Hoanh 4.663 Báo cáo bài đăng Đã đăng Tháng 5 2, 2018 Mình chưa hiểu cộng dồn là sao. Bạn thử xem file cad thể hiện ý của mình: viduhatch.dwg 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
legend_moon 1 Báo cáo bài đăng Đã đăng Tháng 5 4, 2018 Vào lúc 2/5/2018 tại 23:57, Nguyen Hoanh đã nói: Mình chưa hiểu cộng dồn là sao. Bạn thử xem file cad thể hiện ý của mình: viduhatch.dwg file bản vẽ thể hiện đúng ý tưởng mình luôn mà sao mình ko làm được như bạn nhỉ ? bạn có thể chỉ giáo mình không ? mình làm nãy h ko được file của 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
Nguyen Hoanh 4.663 Báo cáo bài đăng Đã đăng Tháng 5 4, 2018 Bản chất ở đây là có 4 hatch tất cả, nếu gọi góc dưới cùng bên trái của hình là góc 0,0 thì 4 đối tượng Hatch này là: - Hatch ngang gốc 0,0; khoảng cách 302; - Hatch dọc gốc 0,0; ; khoảng cách 602; - Hatch ngang gốc 2,2; khoảng cách 302; - Hathc dọc gốc 2,2; khoảng cách 602; Bạn làm theo các bước này nhé: 1. Tạo đối tượng Hatch, mẫu hatch User Preference theo phương ngang, khoảng cách là 602, Chọn gốc tọa độ hatch là gốc phía dưới cùng bên trái. 2. Copy đối tượng vừa tạo ra tại đúng vị trí chính nó (bằng lệnh copy, chọn đối tượng, click một điểm bất kỳ, gõ "@" rồi enter) 3. Dùng lệnh Hatch edit để sửa góc thành 90 độ (theo phương dọc), và khoảng cách là 302. 4. Copy 2 đối tượng hatch vừa rồi tại đúng vị trí chính nó. 5. Dùng lệnh Hatch edit để sửa gốc của 2 hatch mới theo gốc 2,2 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
legend_moon 1 Báo cáo bài đăng Đã đăng Tháng 5 4, 2018 13 phút trước, Nguyen Hoanh đã nói: Bản chất ở đây là có 4 hatch tất cả, nếu gọi góc dưới cùng bên trái của hình là góc 0,0 thì 4 đối tượng Hatch này là: - Hatch ngang gốc 0,0; khoảng cách 302; - Hatch dọc gốc 0,0; ; khoảng cách 602; - Hatch ngang gốc 2,2; khoảng cách 302; - Hathc dọc gốc 2,2; khoảng cách 602; Bạn làm theo các bước này nhé: 1. Tạo đối tượng Hatch, mẫu hatch User Preference theo phương ngang, khoảng cách là 602, Chọn gốc tọa độ hatch là gốc phía dưới cùng bên trái. 2. Copy đối tượng vừa tạo ra tại đúng vị trí chính nó (bằng lệnh copy, chọn đối tượng, click một điểm bất kỳ, gõ "@" rồi enter) 3. Dùng lệnh Hatch edit để sửa góc thành 90 độ (theo phương dọc), và khoảng cách là 302. 4. Copy 2 đối tượng hatch vừa rồi tại đúng vị trí chính nó. 5. Dùng lệnh Hatch edit để sửa gốc của 2 hatch mới theo gốc 2,2 Mình đã làm được rồi. cảm ơn bạn 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
cuongtk2 332 Báo cáo bài đăng Đã đăng Tháng 5 16, 2018 Bạn nên tạo file hatch G602x302.pat với nội dung như thế này, nhớ Enter để xuống dòng khi type xong: *G602x302, Op tuong 60x30 mach 2 0, 0,0, 0,302, 600,-2 0, 0,300, 0,302, 600,-2 90, 0,0, 0,602, 300,-2 90, 600,0, 0,602, 300,-2 Bạn có thể dễ dàng tạo hatch với nội dung như sau: - *G602x302: tên hach phải trùng với tên file, sau dấu phẩy là ghi chú - 90, 600,0, 0,602, 300,-2 có ý nghĩa : 90, : góc vẽ 600,0, : điểm xuất phát 0,602, : điểm nhắc lại (hiểu như là ucs đã quay theo góc vẽ ) 300,-2 : chiều dài nét, khoảng hở 1 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
quan le 1 Báo cáo bài đăng Đã đăng Tháng 10 11, 2019 Nhân tiện cho mình hỏi, có bạn nào có lisp dim mà text thể hiện được ra được số lượng gạch và kích thước gạch không thế? Ví dụ mình có 1 đoạn dài 6030 (mm), kích thước 1 cạnh của viên gạch là 603, khi dim text hiện ra luôn được là 10x603=6030. Edit text với số lượng lớn thì lâu quá. 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
conghoa 122 Báo cáo bài đăng Đã đăng Tháng 10 11, 2019 2 giờ trước, quan le đã nói: Nhân tiện cho mình hỏi, có bạn nào có lisp dim mà text thể hiện được ra được số lượng gạch và kích thước gạch không thế? Ví dụ mình có 1 đoạn dài 6030 (mm), kích thước 1 cạnh của viên gạch là 603, khi dim text hiện ra luôn được là 10x603=6030. Edit text với số lượng lớn thì lâu quá. Có một cách để đỡ phải gõ lại trong khi chờ phương án khác: Tạo 1 text field: Ax603= Trong đó giá trị A là text field có công thức bên trong bằng giá trị Dim/603 Như trong hình minh họa thì số 50 là text field có công thức bằng giá trị Dim 30194/603 (số 50 được làm tròn) sau khi có text này rồi thì bạn chỉ cần copy đến các vị trí dim cần ghi thêm số lượng gạch, nhấp đúp vào text field rồi gán lại giá trị Dim thành giá trí Dim mới là xong. TT! 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
ngokiet 169 Báo cáo bài đăng Đã đăng Tháng 10 11, 2019 3 giờ trước, quan le đã nói: Nhân tiện cho mình hỏi, có bạn nào có lisp dim mà text thể hiện được ra được số lượng gạch và kích thước gạch không thế? Ví dụ mình có 1 đoạn dài 6030 (mm), kích thước 1 cạnh của viên gạch là 603, khi dim text hiện ra luôn được là 10x603=6030. Edit text với số lượng lớn thì lâu quá. Bác có thể ghi theo kiểu này hay thay đổi cho phù hợp với mì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
quan le 1 Báo cáo bài đăng Đã đăng Tháng 10 11, 2019 1 giờ trước, conghoa đã nói: Có một cách để đỡ phải gõ lại trong khi chờ phương án khác: Tạo 1 text field: Ax603= Trong đó giá trị A là text field có công thức bên trong bằng giá trị Dim/603 Như trong hình minh họa thì số 50 là text field có công thức bằng giá trị Dim 30194/603 (số 50 được làm tròn) sau khi có text này rồi thì bạn chỉ cần copy đến các vị trí dim cần ghi thêm số lượng gạch, nhấp đúp vào text field rồi gán lại giá trị Dim thành giá trí Dim mới là xong. TT! Cảm ơn bạn! Cách này mình cũng đã thử. Nhưng khối lượng nhiều cũng khá mất, và phải thêm bước chỉnh dim text cho cân đối với line của dim. 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
quan le 1 Báo cáo bài đăng Đã đăng Tháng 10 11, 2019 1 giờ} trướ}c, ngokiet đã nói: Bác có thể ghi theo kiểu này hay thay đổi cho phù hợp với mình Cảm ơn bạn! Bản vẽ triển khai cho công ty Nhật, nên form này không được rồi 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
Doan Nguyen Van 489 Báo cáo bài đăng Đã đăng Tháng 10 11, 2019 29 phút trước, quan le đã nói: Cảm ơn bạn! Bản vẽ triển khai cho công ty Nhật, nên form này không được rồi bạn ạ. (defun c:d1 (/ p1 ent str) (if (not ct1) (or (setq ct1 (getreal "Nhap khoang chia: <100>")) (setq ct1 100.00))) (if (SETQ P1 (GETPOINT "Specify First Point")) (progn (command "DIMLINEAR" "_NON" p1 pause pause ) (SETQ ENT (ENTLAST)) (entmod (subst (cons 1 (strcat (itoa (fix (/ (cdr (assoc 42 (entget ent))) ct1)) ) "x" (rtos ct1 2 0) "=" "<>")) (assoc 1 (entget ent)) (entget ent)))) (progn (setq ct1 nil) (c:d1)))(princ) ) (defun c:d2 (/ p1 p2 str) (if (not ct2) (or (setq ct2 (getreal "Nhap khoang chia: <100>")) (setq ct2 100.00))) (if (SETQ P1 (GETPOINT "Specify First Point")) (progn (SETQ P2 (GETPOINT p1 "Specify Second Point")) (setq dis (distance p1 p2)) (setq str (strcat (itoa (fix (/ dis ct2))) "x" (rtos ct2 2 0) "=" "<>")) (command "DIMALIGNED" "_NON" p1 p2 "T" str pause ) ) (progn (setq ct2 nil) (c:d2))) (princ) ) Viết nhanh cho bạn 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
quan le 1 Báo cáo bài đăng Đã đăng Tháng 10 11, 2019 7 phút trước, Doan Nguyen Van đã nói: d1_d2.lsp [✎] (defun c:d1 (/ p1 ent str) (if (not ct1) (or (setq ct1 (getreal "Nhap khoang chia: <100>")) (setq ct1 100.00))) (if (SETQ P1 (GETPOINT "Specify First Point")) (progn (command "DIMLINEAR" "_NON" p1 pause pause ) (SETQ ENT (ENTLAST)) (entmod (subst (cons 1 (strcat (itoa (fix (/ (cdr (assoc 42 (entget ent))) ct1)) ) "x" (rtos ct1 2 0) "=" "<>")) (assoc 1 (entget ent)) (entget ent)))) (progn (setq ct1 nil) (c:d1)))(princ) ) (defun c:d2 (/ p1 p2 str) (if (not ct2) (or (setq ct2 (getreal "Nhap khoang chia: <100>")) (setq ct2 100.00))) (if (SETQ P1 (GETPOINT "Specify First Point")) (progn (SETQ P2 (GETPOINT p1 "Specify Second Point")) (setq dis (distance p1 p2)) (setq str (strcat (itoa (fix (/ dis ct2))) "x" (rtos ct2 2 0) "=" "<>")) (command "DIMALIGNED" "_NON" p1 p2 "T" str pause ) ) (progn (setq ct2 nil) (c:d2))) (princ) ) Viết nhanh cho bạn Đúng cái mình cần rồi. Cảm ơn bạn nhiều 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
quan le 1 Báo cáo bài đăng Đã đăng Tháng 10 11, 2019 48 phút trước, Doan Nguyen Van đã nói: d1_d2.lsp [✎] (defun c:d1 (/ p1 ent str) (if (not ct1) (or (setq ct1 (getreal "Nhap khoang chia: <100>")) (setq ct1 100.00))) (if (SETQ P1 (GETPOINT "Specify First Point")) (progn (command "DIMLINEAR" "_NON" p1 pause pause ) (SETQ ENT (ENTLAST)) (entmod (subst (cons 1 (strcat (itoa (fix (/ (cdr (assoc 42 (entget ent))) ct1)) ) "x" (rtos ct1 2 0) "=" "<>")) (assoc 1 (entget ent)) (entget ent)))) (progn (setq ct1 nil) (c:d1)))(princ) ) (defun c:d2 (/ p1 p2 str) (if (not ct2) (or (setq ct2 (getreal "Nhap khoang chia: <100>")) (setq ct2 100.00))) (if (SETQ P1 (GETPOINT "Specify First Point")) (progn (SETQ P2 (GETPOINT p1 "Specify Second Point")) (setq dis (distance p1 p2)) (setq str (strcat (itoa (fix (/ dis ct2))) "x" (rtos ct2 2 0) "=" "<>")) (command "DIMALIGNED" "_NON" p1 p2 "T" str pause ) ) (progn (setq ct2 nil) (c:d2))) (princ) ) Viết nhanh cho bạn Lệnh D2 đang bị lỗi về tính số lượng, bạn sửa giúp mình với. 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
Doan Nguyen Van 489 Báo cáo bài đăng Đã đăng Tháng 10 11, 2019 16 phút trước, quan le đã nói: Lệnh D2 đang bị lỗi về tính số lượng, bạn sửa giúp mình với. Cảm ơn bạn. Có thể do khi ofset ra khoảng cách bị lệch đi 1 khoảng rất nhỏ, dẫn đến kết quả chia bị sai, để khắc phục tạm thời mình sửa như này: (defun c:d2 (/ p1 p2 ent dis) (if (not ct2) (or (setq ct2 (getreal "Nhap khoang chia: <100>")) (setq ct2 100.00))) (if (SETQ P1 (GETPOINT "Specify First Point")) (progn (SETQ P2 (GETPOINT p1 "Specify Second Point")) (setq dis (distance p1 p2)) (setq str (strcat (itoa (fix (+ 0.0001 (/ dis ct2)))) "x" (rtos ct2 2 0) "=" "<>")) (command "DIMALIGNED" "_NON" p1 p2 "T" str pause ) ) (progn (setq ct2 nil) (c:d2))) (princ) ) 2 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
Doan Nguyen Van 489 Báo cáo bài đăng Đã đăng Tháng 10 11, 2019 1 phút trước, ngokiet đã nói: Bác dùng (rtos(/ dis ct2) 2 0) dễ. hơn mà. nó tự làm tròn. Rtos nó sẽ làm tròn lên á bác, dẫn đến có thể sai kết quả ở 1 số trường hợp. VD (khoảng cách 175, khoảng chia 30 => số lượng = 5.8333 = 6 sai) (điều này có thể thay đổi nếu chủ tus có logic về số lượng gạch theo kiểu khác) 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
quan le 1 Báo cáo bài đăng Đã đăng Tháng 10 11, 2019 12 phút trước, Doan Nguyen Van đã nói: Có thể do khi ofset ra khoảng cách bị lệch đi 1 khoảng rất nhỏ, dẫn đến kết quả chia bị sai, để khắc phục tạm thời mình sửa như này: d2.lsp [✎] (defun c:d2 (/ p1 p2 ent dis) (if (not ct2) (or (setq ct2 (getreal "Nhap khoang chia: <100>")) (setq ct2 100.00))) (if (SETQ P1 (GETPOINT "Specify First Point")) (progn (SETQ P2 (GETPOINT p1 "Specify Second Point")) (setq dis (distance p1 p2)) (setq str (strcat (itoa (fix (+ 0.0001 (/ dis ct2)))) "x" (rtos ct2 2 0) "=" "<>")) (command "DIMALIGNED" "_NON" p1 p2 "T" str pause ) ) (progn (setq ct2 nil) (c:d2))) (princ) ) Ngon rồi, cảm ơn bạn nhiều 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
ngokiet 169 Báo cáo bài đăng Đã đăng Tháng 10 11, 2019 4 phút trước, Doan Nguyen Van đã nói: Rtos nó sẽ làm tròn lên á bác, dẫn đến có thể sai kết quả ở 1 số trường hợp. VD (khoảng cách 175, khoảng chia 30 => số lượng = 5.8333 = 6 sai) (điều này có thể thay đổi nếu chủ tus có logic về số lượng gạch theo kiểu khác) Do mình nghĩ trong trường hợp này để ghi kích thước chẳn nên mới góp ý như vậy. Nếu ko chẳn thì kiểu gì cũng sai. 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
Doan Nguyen Van 489 Báo cáo bài đăng Đã đăng Tháng 10 11, 2019 1 phút trước, ngokiet đã nói: Do mình nghĩ trong trường hợp này để ghi kích thước chẳn nên mới góp ý như vậy. Nếu ko chẳn thì kiểu gì cũng sai. Đúng vậy á bác, tuy nhiên lấy số theo kiểu fix thì đỡ bị nhầm nhọt nhiều hơn, vì nó chỉ làm tròn xuống, còn Rtos lúc thì tròn lên lúc thì tròn xuống nên e bỏ qua 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
vcdichoi 7 Báo cáo bài đăng Đã đăng Tháng 10 13, 2019 Vào lúc 11/10/2019 tại 15:50, Doan Nguyen Van đã nói: Đúng vậy á bác, tuy nhiên lấy số theo kiểu fix thì đỡ bị nhầm nhọt nhiều hơn, vì nó chỉ làm tròn xuống, còn Rtos lúc thì tròn lên lúc thì tròn xuống nên e bỏ qua Bạn cho mình hỏi khi dùng Lisp chỉ hiện "khoảng cách chia lần đầu" lần sau không hiện khoảng cách chia mà khoảng cách chia là mặc định như lần đầu chọn Vậy vào đâu để nhập lại khoảng cách chia bạn ơi? 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
jangboko 10 Báo cáo bài đăng Đã đăng Tháng 10 13, 2019 Vào lúc 16/5/2018 tại 15:08, cuongtk2 đã nói: Bạn nên tạo file hatch G602x302.pat với nội dung như thế này, nhớ Enter để xuống dòng khi type xong: *G602x302, Op tuong 60x30 mach 2 0, 0,0, 0,302, 600,-2 0, 0,300, 0,302, 600,-2 90, 0,0, 0,602, 300,-2 90, 600,0, 0,602, 300,-2 Bạn có thể dễ dàng tạo hatch với nội dung như sau: - *G602x302: tên hach phải trùng với tên file, sau dấu phẩy là ghi chú - 90, 600,0, 0,602, 300,-2 có ý nghĩa : 90, : góc vẽ 600,0, : điểm xuất phát 0,602, : điểm nhắc lại (hiểu như là ucs đã quay theo góc vẽ ) 300,-2 : chiều dài nét, khoảng hở Bạn có thể giải thích cho mình ý nghĩa từng dòng được không. Theo mình hiểu thì chỗ bạn giải thích nó là dòng cuối cùng ( của phần bô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