Nguyen Hoanh 4.664 Báo cáo bài đăng Đã đăng Tháng 8 6, 2008 Anh làm ơn viết giúp em một lisp có chức năng gán giá trị của text cho elevation của pline.cú pháp lệnh: gõ tên lệnh chương trình yêu cầu chọn text sau đó yêu cầu chọn pline cần gán text vào elevation. (nếu có thể gán được 1 text cho nhiều pline thì càng tốt) em cám ơn anh nhiều! lệnh là T2H (text to H) (defun c:t2h() (setq ent (car (entsel "\nChon text cao do: "))) (redraw ent 3) (princ "\nchon cac pline: ") (setq ss (ssget '((0 . "LWPOLYLINE"))) new (cons 38 (atof (cdr (assoc 1 (entget ent))))) i 0 ) (redraw ent 4) (repeat (sslength ss) (setq x (ssname ss i) i (1+ i) ) (entmod (subst new (assoc 38 (setq tt (entget x))) tt)) ) (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
traitimsat034 15 Báo cáo bài đăng Đã đăng Tháng 8 6, 2008 lệnh là T2H (text to H) (defun c:t2h() (setq ent (car (entsel "\nChon text cao do: "))) (redraw ent 3) (princ "\nchon cac pline: ") (setq ss (ssget '((0 . "LWPOLYLINE"))) new (cons 38 (atof (cdr (assoc 1 (entget ent))))) i 0 ) (redraw ent 4) (repeat (sslength ss) (setq x (ssname ss i) i (1+ i) ) (entmod (subst new (assoc 38 (setq tt (entget x))) tt)) ) (princ) ) Lisp chạy tốt lắm, cám ơn anh 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
meohoang 344 Báo cáo bài đăng Đã đăng Tháng 8 7, 2008 Tại sao nhỉ? Khẳng định với bạn 2 điều: - Không thể tối ưu lisp đó được nữa vì nó đã quá tối ưu. - Lisp này dành để chọn một loạt đối tượng chứ không phải chọn theo cặp. Tôi cũng đã test, mọi người dùng cũng không sao. Có 2 khả năng: 1. Mật độ điểm của bạn quá lớn, khoảng cách các điểm quá bé so với kích thước text. 2. Text của bạn Justify không phải là Left. Bạn có thể upload file của bạn lên diễn đàn được không? Trích dẫn(vbao @ Aug 15 2007, 02:26 PM) cảm ơn anh Hoành, anh cho tôi hỏi thêm: chương trình chỉ cho chọn từng cặp đối tượng (text +point) một, nếu chọn nhiều cặp đối tượng tôi gặp lỗi khi move xảy ra tình trạng vị trí text 1 sẽ hoán đổi cho vị trí text 2 Bạn Hoành xem lại giúp tôi chạy bị y như bạn Vbao nêu ra. Đây là file bản vẽ: điểm có cao độ khác với giá trị ghi trên text (EXP: t=6.01 trong khi cao độ z=3.23) http://www.cadviet.com/upfiles/MTPtest_1.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
makhongbietnoi 21 Báo cáo bài đăng Đã đăng Tháng 8 7, 2008 Tôi cũng đã tìm chủ đề về Wipeout trên diễn đàn nhưng chưa được như mong muốn. Tôi muốn biến 1 đường tròn thành 1 Wipeout. Thực ra, đường tròn cũng tạo bởi các đoạn thẳng, nên có thể chia nó ra thành nhiều đoạn thẳng nhỏ, sau đó Join chúng lại thành 1 Pline kín và dùng lệnh Wipeout. Độ mịn của đường tròn lúc đó sẽ phụ thuộc vào số khoảng chia mà ta chọn. Như vậy Lisp sẽ yêu cầu chọn đối tượng là đường tròn cần chuyển. Chọn số khoảng chia.và sau đó thực hiện. Mong các bác giúp đỡ! 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
meohoang 344 Báo cáo bài đăng Đã đăng Tháng 8 7, 2008 Tôi cũng đã tìm chủ đề về Wipeout trên diễn đàn nhưng chưa được như mong muốn.Tôi muốn biến 1 đường tròn thành 1 Wipeout. Thực ra, đường tròn cũng tạo bởi các đoạn thẳng, nên có thể chia nó ra thành nhiều đoạn thẳng nhỏ, sau đó Join chúng lại thành 1 Pline kín và dùng lệnh Wipeout. Độ mịn của đường tròn lúc đó sẽ phụ thuộc vào số khoảng chia mà ta chọn. Như vậy Lisp sẽ yêu cầu chọn đối tượng là đường tròn cần chuyển. Chọn số khoảng chia.và sau đó thực hiện. Mong các bác giúp đỡ! Theo tôi bạn ko cần tìm lisp! Bạn dùng lệnh _polygon ; dòng nhắc :Enter number of sides <4>: 400(số nguyên này là tuỳ bạn nhập vào, nhấn enter. dòng nhắc tiếp theo : Enter an option [inscribed in circle/Circumscribed about circle] <I>: C (chọn C cho đa giác nằm ngoài vòng tròn) Thế là bạn có 1 pline ; kế tiếp dùng lệnh wipeout mà bạn đã biết. Bạn xem hình minh hoạ bên dướ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
Nguyen Hoanh 4.664 Báo cáo bài đăng Đã đăng Tháng 8 7, 2008 Trích dẫn(vbao @ Aug 15 2007, 02:26 PM) cảm ơn anh Hoành, anh cho tôi hỏi thêm: chương trình chỉ cho chọn từng cặp đối tượng (text +point) một, nếu chọn nhiều cặp đối tượng tôi gặp lỗi khi move xảy ra tình trạng vị trí text 1 sẽ hoán đổi cho vị trí text 2 Bạn Hoành xem lại giúp tôi chạy bị y như bạn Vbao nêu ra. Đây là file bản vẽ: điểm có cao độ khác với giá trị ghi trên text (EXP: t=6.01 trong khi cao độ z=3.23) MTPtest_1.dwg Xin lỗi và cảm ơn bạn đã phát hiện ra lỗi của lisp. Quả thật ban đầu tôi nhầm với lisp khác. Bạn hãy quay lại mục move text với dấu chấm thập phân để download lại. Tôi đã sửa bài viết của tô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
Nguyen Hoanh 4.664 Báo cáo bài đăng Đã đăng Tháng 8 7, 2008 Tôi cũng đã tìm chủ đề về Wipeout trên diễn đàn nhưng chưa được như mong muốn.Tôi muốn biến 1 đường tròn thành 1 Wipeout. Thực ra, đường tròn cũng tạo bởi các đoạn thẳng, nên có thể chia nó ra thành nhiều đoạn thẳng nhỏ, sau đó Join chúng lại thành 1 Pline kín và dùng lệnh Wipeout. Độ mịn của đường tròn lúc đó sẽ phụ thuộc vào số khoảng chia mà ta chọn. Như vậy Lisp sẽ yêu cầu chọn đối tượng là đường tròn cần chuyển. Chọn số khoảng chia.và sau đó thực hiện. Mong các bác giúp đỡ! Bạn dùng lệnh Pol với number of size lớn một chút (khoảng 20-30) để vẽ 'đường tròn'. Đỡ phải load lisp. 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
ph168xd 313 Báo cáo bài đăng Đã đăng Tháng 8 7, 2008 Bạn dùng lệnh SB trong bộ ACV 1.0 Em cũng đã từng biết ACV 1.0. Nhưng chỉ khi chèn block rồi mới sử dụng đc lish a. Hoành ah Em muốn có 1 lish khi nhập lệnh insert, block tự scale theo tỷ lệ dim hiện hành Mong anh giúp em! 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.664 Báo cáo bài đăng Đã đăng Tháng 8 7, 2008 Em cũng đã từng biết ACV 1.0.Nhưng chỉ khi chèn block rồi mới sử dụng đc lish a. Hoành ah Em muốn có 1 lish khi nhập lệnh insert, block tự scale theo tỷ lệ dim hiện hành Mong anh giúp em! Bạn thử lisp của gia_bach chưa? Hy vọng là đúng ý bạn.(command "insert" "cot" (getpoint "\nDiem dat :") (getvar "dimscale") "" (getangle "\nGoc xoay :")) 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 1.554 Báo cáo bài đăng Đã đăng Tháng 8 8, 2008 Tôi cũng đã tìm chủ đề về Wipeout trên diễn đàn nhưng chưa được như mong muốn.Tôi muốn biến 1 đường tròn thành 1 Wipeout. Thực ra, đường tròn cũng tạo bởi các đoạn thẳng, nên có thể chia nó ra thành nhiều đoạn thẳng nhỏ, sau đó Join chúng lại thành 1 Pline kín và dùng lệnh Wipeout. Độ mịn của đường tròn lúc đó sẽ phụ thuộc vào số khoảng chia mà ta chọn. Như vậy Lisp sẽ yêu cầu chọn đối tượng là đường tròn cần chuyển. Chọn số khoảng chia.và sau đó thực hiện. Mong các bác giúp đỡ! Thường tôi dùng cách như của meohoang và cũng đã đề cập ở các bài về Wipeout trước rồi nhưng nếu bạn thíc dùng lisp thì đây: (Defun c:wipc () (setq luubatdiem (getvar "osmode")) (setvar "osmode" 0) (Princ "\nHay chon CIRCLE :") (setq XX (ssget '((0 . "CIRCLE")))) (setq L 0) (setq M (sslength XX)) (while (< L M) (setq DT (ssname XX L)) (setq DT (entget DT)) (setq TAM (cdr (assoc 10 DT))) (setq BANKINH (cdr (assoc 40 DT))) (command ".polygon" "30" TAM "" BANKINH) (command ".wipeout" "" "last" "y") (setq L (1+ L)) ) (setvar "osmode" luubatdiem) (setvar "MODEMACRO" "**CHUC BAN LAM VIEC HIEU QUA** PHAM QUOC DUY - BINH SON - QUANG NGAI") (Princ) ) Gỏ lệnh : wipc Chọn các hình tròn cần tạo (nhiều hình 1 lúc cumh4 được). Enter là xong. Mặc định đa giác tạo ra có 30 cạ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
makhongbietnoi 21 Báo cáo bài đăng Đã đăng Tháng 8 8, 2008 Cảm ơn các bác giúp đỡ. Dùng Lisp của bác Duy782006 vẫn nhanh hơn rất 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
KHIEMHAO 5 Báo cáo bài đăng Đã đăng Tháng 8 8, 2008 Tôi hiện đang Ctác tại 1 CTy Thiết kế điện, thường xuyên vẽ các MC mương chôn cáp điện . Nếu cứ dùng lệnh Copy sau đó chỉnh sữa thì rất ư là nhàm chán, các bác có thể viết giúp 1 lisp để vẽ mặt cắt này được không , hình mặt cắt kèm theo các kích thước có dấu ? là cần thay đổi, các đường kính ống cũng vậy, các bác có thể thêm hatch cát lấp vào bên trong các layer vẽ thì tùy các bác . Xin cám ơn trước ( file kèm theo MC.pdf 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.664 Báo cáo bài đăng Đã đăng Tháng 8 9, 2008 Tôi hiện đang Ctác tại 1 CTy Thiết kế điện, thường xuyên vẽ các MC mương chôn cáp điện . Nếu cứ dùng lệnh Copy sau đó chỉnh sữa thì rất ư là nhàm chán, các bác có thể viết giúp 1 lisp để vẽ mặt cắt này được không , hình mặt cắt kèm theo các kích thước có dấu ? là cần thay đổi, các đường kính ống cũng vậy, các bác có thể thêm hatch cát lấp vào bên trong các layer vẽ thì tùy các bác . Xin cám ơn trước ( file kèm theo MC.pdf Mặt cắt nào cũng có 12 ố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
hvv 0 Báo cáo bài đăng Đã đăng Tháng 8 9, 2008 Nói ra ngại quá ... em là lính mới nên có bác nào chỉ em cách add LSP , VLX ... nhúng cào cad ko ...Nhân tiện chỉ cho em cách dấu hay xóa cái ... à bấm f2 thì hiện ra những tác vụ đã làm , muốn bản vẽ của ta không ai coppy được thí sao nhỉ ,,, hì :s_big: Dễ ợt! Bạn vào Tool/Load Applycation sau đó chọn tời file *.lsp hoặc *.VLXđể tải lên. Nếu LISP có cả hộp thoại *.DCL bạn phải vào Tools/Option. Chọn thẻ File sau đó bạ add đuòng dẫn tới thư mục chứa file *DCL. 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
hvv 0 Báo cáo bài đăng Đã đăng Tháng 8 9, 2008 Multi đây: (defun c:ND (/ Ename Elist Msg Oldtext Oldlist Newtext Newlist) (defun ss2ent (ss / sodt index lstent) (setq sodt (cond (ss (sslength ss)) (t 0) ) index 0 ) (repeat sodt (setq ent (ssname ss index) index (1+ index) lstent (cons ent lstent) ) ) (reverse lstent) ) (prompt "\nChon chu muon chinh.") (setq ssEname (ssget '((0 . "TEXT")))) (if (not ssEname) (prompt "\nChua chon duoc doi tuong.") (progn (prompt "\nChon chu lam chuan.") (setq lstEname (ss2ent ssEname)) (setq Newtext (car (entsel))) (setq Newtext (entget Newtext)) (setq Newtext (assoc 1 Newtext)) (setq Newtext (cdr Newtext)) (setq Newlist (cons '1 Newtext)) (foreach Ename lstEname (setq Elist (entget Ename)) (setq Oldlist (assoc 1 Elist)) (setq Oldtext (cdr Oldlist)) (setq Elist (subst Newlist Oldlist Elist)) (entmod Elist) ) ) ; end progn ) ; end if (princ) ) Muốn Multi thì bạn chỉ cần thêm vồng lặp While là xong 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
ph168xd 313 Báo cáo bài đăng Đã đăng Tháng 8 9, 2008 Bạn thử lisp của gia_bach chưa? Không phải. Em muốn lish scale tất cả các block chèn vào bản vẽ theo tỷ lệ dim hiện hành Chứ không chỉ có mỗi block tên "cot" Gõ lệnh insert, đánh tên 1 block bất kỳ có trong bản vẽ Lish sẽ scale block đó theo tỷ lệ dim hiện hà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
khanhduydang 8 Báo cáo bài đăng Đã đăng Tháng 8 9, 2008 Chào anh Nguyen Hoanh! E có sử dụng lisp mà a đã viết để sắp xếp các lớp dim theo 1 khoảng cách xác định. TRong lisp của a là 270 cho các lớp dim cách nhau. Đoạn lisp đó cũng rất hoàn chỉnh nhưng a có thể cho người dùng chọn khoảng cách các lớp dim thay vì cứ 270. VD: khoảng cách các lớp dim của em có lúc là 200,300, hay một số bất kỳ. Chân thành 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
KHIEMHAO 5 Báo cáo bài đăng Đã đăng Tháng 8 10, 2008 Mặt cắt nào cũng có 12 ống? Mỗi mặt cắt ít nhất là 1 và nhiều nhất là 12 ống , ít nhất là 1 lớp và nhiều nhất là 3 lớp lúc nào cũng tính từ tim mương đó bác Hòanh ạ, Theo ý tôi thì có thê khi nhập khỏang cách thì cho nó =0 thì 2 họac nhiều ống sẽ chồng lên nhau thôi, mong bá Hòanh giúp một tay. 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
Nguyen Hoanh 4.664 Báo cáo bài đăng Đã đăng Tháng 8 10, 2008 Mỗi mặt cắt ít nhất là 1 và nhiều nhất là 12 ống , ít nhất là 1 lớp và nhiều nhất là 3 lớp lúc nào cũng tính từ tim mương đó bác Hòanh ạ, Theo ý tôi thì có thê khi nhập khỏang cách thì cho nó =0 thì 2 họac nhiều ống sẽ chồng lên nhau thôi, mong bá Hòanh giúp một tay. Cám ơn nhiều Nếu bạn cần vẽ 7 ống, bạn sẽ vẽ 8 ống rồi xóa thủ công đi 1 ống? Đừng làm thế vì như thế là phản autolisp. Bạn hãy upload 1 file dwg chứa hình mặt cắt của bạn lên diễn đàn, Trong file dwg đó, bạn hãy thể hiện 12 mặt cắt vẽ từ 1-12 ống. Tôi sẽ giúp bạn có được lisp tự động hoàn toà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
gia_bach 1.553 Báo cáo bài đăng Đã đăng Tháng 8 11, 2008 Không phải. Em muốn lish scale tất cả các block chèn vào bản vẽ theo tỷ lệ dim hiện hànhChứ không chỉ có mỗi block tên "cot" Gõ lệnh insert, đánh tên 1 block bất kỳ có trong bản vẽ Lish sẽ scale block đó theo tỷ lệ dim hiện hành Bạn tạo vòng lặp nhập tên Block cần scale tỉ lệ thay cho tên "cot". 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
lengan 32 Báo cáo bài đăng Đã đăng Tháng 8 11, 2008 Trong Cad2008 có lệnh Torient có thể quay text theo hướng của một đường bất kỳ mà không cần dùng đến lệnh rotate với tham số R. Vậy có lệnh nào tương tự như vậy mà có thể áp dụng cho các đối tượng khác như hình chữ nhật, hình tam giác vv.. không các bác. Nếu không có nhờ các bác viết hộ cho một lisp như vậy đượ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
xuanhai 6 Báo cáo bài đăng Đã đăng Tháng 8 11, 2008 Xin nhờ A N Hoành viết dùm e cái lisp này. E có hàng loạt text font Vni - times có dạng chữ số dấu chấm (.) thập phân. E muốn có 1 lisp chuyển dấu chấm (.) thành dấu phẩy (,). VD: 1.325 thành 1,325 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
Nguyen Hoanh 4.664 Báo cáo bài đăng Đã đăng Tháng 8 11, 2008 Xin nhờ A N Hoành viết dùm e cái lisp này.E có hàng loạt text font Vni - times có dạng chữ số dấu chấm (.) thập phân. E muốn có 1 lisp chuyển dấu chấm (.) thành dấu phẩy (,). VD: 1.325 thành 1,325 cám ơn nhiều. bạn dùng lệnh FIND của AutoCAD. 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
KHIEMHAO 5 Báo cáo bài đăng Đã đăng Tháng 8 11, 2008 Tôi xin up lên các mặt cắt mương cáp nhờ bác Hòanh giúp dùm, ghi chú: các kích thước ký hiệu h và v sẽ thay đổi tùy theo hạng mục, ĐK các lọai ống cũng vậy, bác Hòanh có thể thêm hatch cho phần cát lấp và đất đắp tùy ý. Chân thành cám ơn bác đã quan tâm ( link của DWG : MCMUONGCAP.rar) 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 365 Báo cáo bài đăng Đã đăng Tháng 8 12, 2008 Trong Cad2008 có lệnh Torient có thể quay text theo hướng của một đường bất kỳ mà không cần dùng đến lệnh rotate với tham số R. Vậy có lệnh nào tương tự như vậy mà có thể áp dụng cho các đối tượng khác như hình chữ nhật, hình tam giác vv.. không các bác. Nếu không có nhờ các bác viết hộ cho một lisp như vậy được không. Lệnh ROTATE đã có đủ rồi, chọn đối tượng cần quay, chọn R (reference), chế độ bắt dính là parallel, chọn đường thẳng cần song song, OK. 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