xaydungcadviet 5 Báo cáo bài đăng Đã đăng Tháng 4 19, 2020 Lời đầu tiên mình xin thân chào tất cả anh em diễn đàn, trong quá trình dùng cad mình gặp một vấn đề như sau, mình hay căn chỉnh khoảng cách đều giữa các mặt cắt ngang dầm (có thể là Block) để lọt vào khung trong khổ giấy, khoảng cách phụ thuộc vào số lượng ít hay nhiều mặt cắt, mỗi lần như thế chỉnh lại hơi thủ công, vì rất nhiều mặt cắt ạ.Nay xin mạn phép nhờ các anh em viết một lisp có tính năng tương tự như thế không ạ (tại em tìm trên diễn đàn rồi mà chưa có bài nào có nội dung tương tự).Nội dung lisp: Đánh lệnh ->quét chọn từng đối tượng(ở đây là từng mặt cắt ngang dầm hoặc nếu là block thì quét chọn hết)->chọn điểm chuẩn từng đối tượng(nếu block thì bỏ qua vì lấy theo điểm chèn block)->chọn phương X,Y-->Nhập khoảng cách (hoặc click 2 điểm để lấy khoảng cách trên màn hình hoặc dãn động thì tuyệt :)) Em xin chân thành cảm ơn anh em! 2 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
CadExTools 110 Báo cáo bài đăng Đã đăng Tháng 4 19, 2020 bản vẽ up lên đi thớt ơi 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
xaydungcadviet 5 Báo cáo bài đăng Đã đăng Tháng 4 19, 2020 6 giờ trước, CadExTools đã nói: bản vẽ up lên đi thớt ơi Cảm ơn anh đã quan tâm, em đã gửi bản vẽ đính kèm đây ạ, có gì diễn đạt không kỹ lắm mong anh em bỏ qua nhé, cảm ơn TEST.dwg 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 492 Báo cáo bài đăng Đã đăng Tháng 4 20, 2020 4 giờ trước, xaydungcadviet đã nói: Cảm ơn anh đã quan tâm, em đã gửi bản vẽ đính kèm đây ạ, có gì diễn đạt không kỹ lắm mong anh em bỏ qua nhé, cảm ơn TEST.dwg (Defun c:te (/ ss p1 p2 x a e) (Setq ss (ssget '(( 0 . "INSERT")))) (setq p1 (getpoint "pick diem chen") p2 (getpoint p1 "pick phuong, khoang cach")) (setq x (distance p1 p2) a (angle p1 p2)) (while (setq e (ssname ss 0)) (setq ss (ssdel e ss)) (command "copy" e "" "_NON" (cdr (assoc 10 (entget e))) "_NON" p1) (setq p1 (polar p1 a x))) ) 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
xaydungcadviet 5 Báo cáo bài đăng Đã đăng Tháng 4 20, 2020 2 giờ trước, Doan Nguyen Van đã nói: te.lsp [✎] (Defun c:te (/ ss p1 p2 x a e) (Setq ss (ssget '(( 0 . "INSERT")))) (setq p1 (getpoint "pick diem chen") p2 (getpoint p1 "pick phuong, khoang cach")) (setq x (distance p1 p2) a (angle p1 p2)) (while (setq e (ssname ss 0)) (setq ss (ssdel e ss)) (command "copy" e "" "_NON" (cdr (assoc 10 (entget e))) "_NON" p1) (setq p1 (polar p1 a x))) ) Đầu tiên rất cảm ơn bác đã giúp đỡ, em đã dùng và có một số vấn đề mong bác xem xét điều chỉnh thêm được không ạ, Nội dung như sau: 1.Sau khi dùng lệnh->quét chọn đối tượng là block -> pick chọn điểm từ trái qua phải (hoặc từ trên xuống dưới)-> ra kết quả sắp nó sắp xếp ngược lại bác à.Bác có thể điều chỉnh theo thói quen em hay dùng được không ạ (Em có gửi bản vẽ đi kèm) 2.Bác có thể thêm chức năng ví dụ thay vì pick chọn 2 điểm ra khoảng cách giờ mình pick 2 điểm thì tất cả đối tượng dãn đều nằm giữa em điểm Pick được không ạ.(Em có gửi bản vẽ đi kèm) 3.Mong bạn thêm 1 chức năng căn dãn cho đối tượng là bất kỳ(rời rạc) - Chế độ này phụ thuộc vào từng vùng quét chọn đối tượng (ví dụ: ở đây mình có 5 mặt cắt dầm thì mỗi mặt cắt ta quét chọn vùng 1 lần) --->sau đó chọn thêm điểm chuẩn để làm điểm cơ sở dãn ạ (Em có gửi bản vẽ đi kèm) Em văn chương hơi kém nên bác thông cảm nhé, mong bác giúp đỡ, cảm ơn nhiều ạ...! TEST 1.dwg 1 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 492 Báo cáo bài đăng Đã đăng Tháng 4 20, 2020 Chào bạn. Mình xin giải thích như sau: 1. Có thể do cách chọn của mình khiến bạn thao tác sai, ở đây bạn chọn từng đối tượng theo thứ tự cần sắp xếp. 2.3: ở đây trong bv của bạn có 1 TH nên mình mới viết cho riêng TH này. Phần yêu cầu thêm bạn nên chú ý nói ngay từ đầu tránh người viết phải tốn nhiều thời gian vào việc sửa code cho bạ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
xaydungcadviet 5 Báo cáo bài đăng Đã đăng Tháng 4 20, 2020 30 phút trước, Doan Nguyen Van đã nói: Chào bạn. Mình xin giải thích như sau: 1. Có thể do cách chọn của mình khiến bạn thao tác sai, ở đây bạn chọn từng đối tượng theo thứ tự cần sắp xếp. 2.3: ở đây trong bv của bạn có 1 TH nên mình mới viết cho riêng TH này. Phần yêu cầu thêm bạn nên chú ý nói ngay từ đầu tránh người viết phải tốn nhiều thời gian vào việc sửa code cho bạn. -Cảm ơn bạn đã nhắc nhở, mình xin lỗi, nội dung bài viết lúc đầu mình cũng nói ở trên nhưng chắc diễn đạt chưa hết ý lắm, với thêm bản vẽ chỉ để đối tượng là Block nên thành ra như thế, lần sau mình sẽ chú ý hơn, mong bạn thông cảm. -Trường hợp 1 chắc do mình quét chọn hết 1 lúc nên nó ra như thế, còn chọn từng đối tượng thì rất tốt ạ. -Bạn có thể bớt chút thời gian giúp mình trường hợp 2,3 không ạ, chân thành cảm ơn. 1 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
duy782006 1592 Báo cáo bài đăng Đã đăng Tháng 4 20, 2020 Đọc đề về trường hợp 3 thì thấy đúng ra phải là cạnh cho nhiều nhóm đối tượng chứ ko phải nhiều đối tượng. Kịch bản chủ thớt đưa ra tôi nghỉ sẽ rối trong khi thực hiện lệnh. Tôi nghỉ kịch bản sau đở rối hơn: -Chọn 2 điểm làm canh lề. -Chọn nhóm đối tượng đầu tiên. Enter kết thúc chọn. Chọn điểm canh của nhóm. Cho lựa chọn kễt thúc hoặc canh tiếp nếu canh tiếp thì lại chọn nhóm và điểm canh của nhó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
xaydungcadviet 5 Báo cáo bài đăng Đã đăng Tháng 4 20, 2020 52 phút trước, duy782006 đã nói: Đọc đề về trường hợp 3 thì thấy đúng ra phải là cạnh cho nhiều nhóm đối tượng chứ ko phải nhiều đối tượng. Kịch bản chủ thớt đưa ra tôi nghỉ sẽ rối trong khi thực hiện lệnh. Tôi nghỉ kịch bản sau đở rối hơn: -Chọn 2 điểm làm canh lề. -Chọn nhóm đối tượng đầu tiên. Enter kết thúc chọn. Chọn điểm canh của nhóm. Cho lựa chọn kễt thúc hoặc canh tiếp nếu canh tiếp thì lại chọn nhóm và điểm canh của nhóm. Dạ, em cảm ơn anh đã đóng góp ý kiến, tại em không biết gì về Lisp nên mới nêu ý tưởng như thế ạ, biết là rất khó nên mong anh em bớt chút thời gian giúp đỡ với ạ 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
thiep 367 Báo cáo bài đăng Đã đăng Tháng 4 20, 2020 Nhìn chung đề bài cũng rõ ràng, các mặt cắt cũng khá giống nhau về mặt cắt, chỉ khác chi tiết đai, cốt thép và tên mặt cắt: 1-1, 2-2, 3-3... phải không @xaydungcadviet Trường hợp 3, lấy "điểm chuẩn" là tâm cạnh đáy dầm: đây là 1 đường lwpolyline, một lớp riêng biệt ("kata net thay") nên cũng thuận lợi dò tìm các "điểm chuẩn" khác để move nhóm đối tượng khác theo khoảng cách của người dùng yêu cầu. 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
quocmanh04tt 638 Báo cáo bài đăng Đã đăng Tháng 4 20, 2020 Mình thử 1 lisp xem sao. Lệnh SXY. SXY.rar 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
xaydungcadviet 5 Báo cáo bài đăng Đã đăng Tháng 4 20, 2020 2 giờ trước, thiep đã nói: Nhìn chung đề bài cũng rõ ràng, các mặt cắt cũng khá giống nhau về mặt cắt, chỉ khác chi tiết đai, cốt thép và tên mặt cắt: 1-1, 2-2, 3-3... phải không @xaydungcadviet Trường hợp 3, lấy "điểm chuẩn" là tâm cạnh đáy dầm: đây là 1 đường lwpolyline, một lớp riêng biệt ("kata net thay") nên cũng thuận lợi dò tìm các "điểm chuẩn" khác để move nhóm đối tượng khác theo khoảng cách của người dùng yêu cầu. Dạ cảm ơn chú @thiep quan tâm, các mặt cắt ở đây cháu làm ví dụ là bằng nhau nhưng đôi khi cũng khác nhau đấy ạ, tại dầm lớn, dầm nhỏ mà chú.Dạ cháu chỉ nêu quan điểm chứ còn chuyên môn về ý tưởng theo Lisp thì cháu thua, hj 1 giờ} trướ}c, quocmanh04tt đã nói: Mình thử 1 lisp xem sao. Lệnh SXY. SXY.rar Cảm ơn anh rất nhiều @quocmanh04tt đã bớt chút thời gian để viết Lisp, em đã dùng qua mọi thứ rất tốt ạ, nhưng em đang thắc mắc một chỗ là đôi khi em muốn dãn theo phương X hoặc phương Y thì nó lại theo phương ngược lại ạ, ý của em là anh có thể thêm là mặc định là 1 phương nào đó luôn được không; hoặc giống Lisp của bác @Doan Nguyen Van dùng lệnh -->kích theo phương nào thì nó dãn theo phương đó luôn, em chân thành cảm ơn anh em đã quan tâm. P/s: Xin lỗi bác @thiep hôm nay cháu vote tăng và like nhiều quá nên không vote tăng hoặc like cho bác được, mong bác thông cảm hì :) 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
Doan Nguyen Van 492 Báo cáo bài đăng Đã đăng Tháng 4 20, 2020 Giờ mới rảnh viết lại cho bạn đây: Phần rời rạc khi hỏi pick hướng thì Enter để chọn tiếp tập chọn khác. Xem cái bộ Layer quen quen, hình như file bạn còn thiếu vài layer kata thep H, thep V ...thì phải ^^ GDB-Gian Deu Block (object).rar 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
xaydungcadviet 5 Báo cáo bài đăng Đã đăng Tháng 4 20, 2020 7 giờ trước, Doan Nguyen Van đã nói: Giờ mới rảnh viết lại cho bạn đây: Phần rời rạc khi hỏi pick hướng thì Enter để chọn tiếp tập chọn khác. Xem cái bộ Layer quen quen, hình như file bạn còn thiếu vài layer kata thep H, thep V ...thì phải ^^ te.lsp [✎] (Defun c:te (/ ss p1 p2 x a e lst) (setq lst (list)) (Setq ss (ssget )) (setq p1 (getpoint "pick diem chen hoac diem goc")) (if (setq p2 (getpoint p1 "pick phuong, khoang cach")) (progn (setq x (distance p1 p2) a (angle p1 p2)) (while (setq e (ssname ss 0)) (setq ss (ssdel e ss)) (command "copy" e "" "_NON" (cdr (assoc 10 (entget e))) "_NON" p1) (setq p1 (polar p1 a x))) ) (progn (setq lst (append lst (list (list ss p1)))) (while (and (setq ss (ssget)) (setq p1 (getpoint "Pick diem goc"))) (setq lst (append lst (list (list ss p1)))) ) (setq p1 (getpoint "pick diem chen") p2 (getpoint p1 "pick phuong, khoang cach")) (setq x (distance p1 p2) a (angle p1 p2)) (while (setq l1 (car lst)) (setq lst (cdr lst)) (command "copy" (car l1) "" "_NON" (cadr l1) "_NON" p1) (setq p1 (polar p1 a x))) ))) Hehe, mình sài kata nhưng vẽ bên model nên mình hay đóng khối lại rồi scale lên, cơ bản thì nó đã sắp xếp ổn rồi, nhưng đôi khi cũng phải cần sắp xếp lại nên nảy ý tưởng như thế hj, cảm ơn bạn @Doan Nguyen Van đã giúp đỡ, Lisp sài rất ổn, nhưng mà bạn có thể chỉnh thêm trường hợp pick chọn giới hạn các mặt cắt đã chọn tự dãn đều nằm trong 2 điểm pick không (giống chế độ Fit ấy), cảm ơn bạn P/S: Hết Vote tăng được cho bác, em vote tăng nhiều hết lượt rồi, thông cảm nhé hj 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
quocmanh04tt 638 Báo cáo bài đăng Đã đăng Tháng 4 21, 2020 12 giờ trước, xaydungcadviet đã nói: Cảm ơn anh rất nhiều @quocmanh04tt đã bớt chút thời gian để viết Lisp, em đã dùng qua mọi thứ rất tốt ạ, nhưng em đang thắc mắc một chỗ là đôi khi em muốn dãn theo phương X hoặc phương Y thì nó lại theo phương ngược lại ạ, ý của em là anh có thể thêm là mặc định là 1 phương nào đó luôn được không; hoặc giống Lisp của bác @Doan Nguyen Van dùng lệnh -->kích theo phương nào thì nó dãn theo phương đó luôn, em chân thành cảm ơn anh em đã quan tâm. Lisp của mình chỉ đổi vị chứ không thay phương (Kiên trì đường lối). Có nghĩa là: ban đầu phương nào (X hoặc Y) thì vẫn giữ nguyên phương đó, chỉ co giãn khoảng cách theo nhu cầu. 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
xaydungcadviet 5 Báo cáo bài đăng Đã đăng Tháng 4 21, 2020 1 giờ trước, quocmanh04tt đã nói: Lisp của mình chỉ đổi vị chứ không thay phương (Kiên trì đường lối). Có nghĩa là: ban đầu phương nào (X hoặc Y) thì vẫn giữ nguyên phương đó, chỉ co giãn khoảng cách theo nhu cầu. Ok. mình hiểu rồi, cảm ơn bác nhiều đã giúp đỡ, chúc bác thật nhiều sức khỏe 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
hnvt501 1 Báo cáo bài đăng Đã đăng Tháng 5 11, 2021 Vào lúc 20/4/2020 tại 08:25, Doan Nguyen Van đã nói: te.lsp [✎] (Defun c:te (/ ss p1 p2 x a e) (Setq ss (ssget '(( 0 . "INSERT")))) (setq p1 (getpoint "pick diem chen") p2 (getpoint p1 "pick phuong, khoang cach")) (setq x (distance p1 p2) a (angle p1 p2)) (while (setq e (ssname ss 0)) (setq ss (ssdel e ss)) (command "copy" e "" "_NON" (cdr (assoc 10 (entget e))) "_NON" p1) (setq p1 (polar p1 a x))) ) A @Doan Nguyen Van cho e hỏi có thể chỉnh lại lisp này 1 tí ko ạ. Sau khi thực hiện lệnh xong nếu muốn undo lại thì phải thực hiện rất nhiều lần undo mới trở về như trước khi dùng lisp. với nhiều đối tượng thì nó hơi bất tiện tí ạ. cám ơn 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
Doan Nguyen Van 492 Báo cáo bài đăng Đã đăng Tháng 5 11, 2021 1 giờ trước, hnvt501 đã nói: A @Doan Nguyen Van cho e hỏi có thể chỉnh lại lisp này 1 tí ko ạ. Sau khi thực hiện lệnh xong nếu muốn undo lại thì phải thực hiện rất nhiều lần undo mới trở về như trước khi dùng lisp. với nhiều đối tượng thì nó hơi bất tiện tí ạ. cám ơn a. Chưa rõ lắm, bạn gửi bv lên hoặc gửi qua zalo: 0976379894 mình check 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 Van Ha 3208 Báo cáo bài đăng Đã đăng Tháng 5 11, 2021 8 phút trước, Doan Nguyen Van đã nói: Chưa rõ lắm, bạn gửi bv lên hoặc gửi qua zalo: 0976379894 mình check Tức là Doan cài undo begin đầu lisp và undo end cuối lisp thì U là được. 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
hnvt501 1 Báo cáo bài đăng Đã đăng Tháng 5 11, 2021 22 phút trước, Doan Nguyen Van đã nói: Chưa rõ lắm, bạn gửi bv lên hoặc gửi qua zalo: 0976379894 mình check Bản vẽ đây a. a thử dùng lisp sau đó undo là thấy. TE.dwg 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 492 Báo cáo bài đăng Đã đăng Tháng 5 11, 2021 27 phút trước, Doan Van Ha đã nói: Tức là Doan cài undo begin đầu lisp và undo end cuối lisp thì U là được. Cháu cứ tưởng lisp lỗi phải undo ... 11 phút trước, hnvt501 đã nói: Bản vẽ đây a. a thử dùng lisp sau đó undo là thấy. TE.dwg Chợt tìm lại file mà không thấy, để mình kiếm lại sẽ sửa 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
hnvt501 1 Báo cáo bài đăng Đã đăng Tháng 5 11, 2021 11 phút trước, Doan Nguyen Van đã nói: Cháu cứ tưởng lisp lỗi phải undo ... Chợt tìm lại file mà không thấy, để mình kiếm lại sẽ sửa Hơi tham lam xíu nhưng mà cho e hỏi mình có cách nào có thể sắp xếp các ATT mẫu trong bản vẽ e up lên theo thứ tự không nhỉ. Ví dụ có nhiều ATT trong bản vẽ, quét chọn, kết quả sắp xếp các ATT theo thứ tự 1->2->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
Doan Nguyen Van 492 Báo cáo bài đăng Đã đăng Tháng 5 11, 2021 14 phút trước, hnvt501 đã nói: Hơi tham lam xíu nhưng mà cho e hỏi mình có cách nào có thể sắp xếp các ATT mẫu trong bản vẽ e up lên theo thứ tự không nhỉ. Ví dụ có nhiều ATT trong bản vẽ, quét chọn, kết quả sắp xếp các ATT theo thứ tự 1->2->3. https://www.facebook.com/D2Lisp/posts/4120617147989937 Bạn xem qua lisp sắp xếp block này nhé. Cái này có thể áp dụng được 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
hnvt501 1 Báo cáo bài đăng Đã đăng Tháng 5 12, 2021 23 giờ trước, Doan Nguyen Van đã nói: Cháu cứ tưởng lisp lỗi phải undo ... Chợt tìm lại file mà không thấy, để mình kiếm lại sẽ sửa nhờ a thêm tí nữa, e có chỉnh sửa lisp 1 tí để sắp xếp các polyline, nhưng sau khi dùng thì thứ tự các polyline bị nhảy lộn xộn. ý e muốn sắp xếp nhưng vẫn giữ nguyên thứ tự các polyline. nhờ a chỉnh sửa giúp nhé. e cám ơn. te.lsp POLYLINE.dwg 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 492 Báo cáo bài đăng Đã đăng Tháng 5 12, 2021 3 giờ trước, hnvt501 đã nói: nhờ a thêm tí nữa, e có chỉnh sửa lisp 1 tí để sắp xếp các polyline, nhưng sau khi dùng thì thứ tự các polyline bị nhảy lộn xộn. ý e muốn sắp xếp nhưng vẫn giữ nguyên thứ tự các polyline. nhờ a chỉnh sửa giúp nhé. e cám ơn. te.lsp POLYLINE.dwg Mình thấy bạn có nhiều ý tưởng cùng lúc khá hay, nếu cần thì liên hệ qua zalo mình 0976379894 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