Jump to content
InfoFile
Tác giả: Nguyen Hoanh
Bài viết gốc: 6700
Tên lệnh: tm
Lisp đánh số trang trong AutoCAD


Đoạn mã dưới đây tôi đã ghép thêm tổng số trang vào cuối của hàm strcat (chỗ tô màu đỏ).

Filename: 6700_tm.lsp
Tác giả: quygtvt
Bài viết gốc: 66820
Tên lệnh: qq4
Viết Lisp theo yêu cầu


Bạn có thể sử dụng lệnh "Torient" để xoay text (nếu đã cài đủ Express). Nếu không, bạn thử LISP này xem.

Nếu muốn đưa text về giữa đoạn thẳng thì mất công thêm một chút. Vì chưa biết text của bạn căn thế nào (Center/left/right/....)

Filename: 66820_qq4.lsp
Tác giả: q288
Bài viết gốc: 66774
Tên lệnh: ist
Viết Lisp theo yêu cầu



Yêu cầu càng lúc càng nhiều hỉ :s_big: . Sửa thêm lần nữa.

Filename: 66774_ist.lsp
Tác giả: Tue_NV
Bài viết gốc: 66374
Tên lệnh: danhtruc
Viết Lisp theo yêu cầu

Chào aliosa :
Hai lwòi góp ý với bạn :
- 1 Cùng một câu hỏi mà bạn lại post ở 3 topic là điều hoàn toàn không nên làm chút nào và phải tránh
- 2 Tue_NV đọc bài của bạn vẫn chưa hiểu bạn nói gì thì làm sao mà giúp cho bạn được. Bạn nên nói rõ ràng ra và nên upload file .dwg minh hoạ điều bạn nói.
Chúc vui vẻ
>>

Chào aliosa :
Hai lwòi góp ý với bạn :
- 1 Cùng một câu hỏi mà bạn lại post ở 3 topic là điều hoàn toàn không nên làm chút nào và phải tránh
- 2 Tue_NV đọc bài của bạn vẫn chưa hiểu bạn nói gì thì làm sao mà giúp cho bạn được. Bạn nên nói rõ ràng ra và nên upload file .dwg minh hoạ điều bạn nói.
Chúc vui vẻ :s_big:
<<

Filename: 66374_danhtruc.lsp
Tác giả: Tue_NV
Bài viết gốc: 66376
Tên lệnh: anlay
Thắc mắc về Layoff, layiso?

Bạn sử dụng Lisp của Tue_NV xem :
Ban muon an Layer theo Vung chon hay an Layer tren toAn ban ve <V/A> :
Ở dòng này nếu bạn chọn V : thì ẩn Lâyer theo vùng chọn
Còn nếu bạn chọn là : A thì chức năng này tương đương với lệnh Layoff
-> để hiện lại layer thì dùng Lisp VIS của bác Bemove
>>

Bạn sử dụng Lisp của Tue_NV xem :
Ban muon an Layer theo Vung chon hay an Layer tren toAn ban ve <V/A> :
Ở dòng này nếu bạn chọn V : thì ẩn Lâyer theo vùng chọn
Còn nếu bạn chọn là : A thì chức năng này tương đương với lệnh Layoff
-> để hiện lại layer thì dùng Lisp VIS của bác Bemove
:s_big:
<<

Filename: 66376_anlay.lsp
Tác giả: Tue_NV
Bài viết gốc: 66544
Tên lệnh: chonblock
Select nhiều Block

Bạn thử cái này xem :

Filename: 66544_chonblock.lsp
Tác giả: Snowman
Bài viết gốc: 66347
Tên lệnh: vmp vmt msp mst vpc
Nâng hạ đường thiết kế trong Nova

Nova 4.01 chạy trên 2K trở lên thì cái nào chẳng giống cái nào ??? 2005 chẳng qua chỉ là phiên bản chạy trên 2005 (thêm bớt một số lệnh). Tôi vẫn dùng với 2005 tk nâng hạ bt <_<
Bạn tham khảo những lệnh dưới đây, (Tôi để các gtrị cố định vì ko muốn mất tg nhập nhiều dữ liệu, chạy mỗi công trình sửa luôn lisp gốc cho tiện)


Thực ra vấn đề này chỉ có...
>>

Nova 4.01 chạy trên 2K trở lên thì cái nào chẳng giống cái nào ??? 2005 chẳng qua chỉ là phiên bản chạy trên 2005 (thêm bớt một số lệnh). Tôi vẫn dùng với 2005 tk nâng hạ bt <_<
Bạn tham khảo những lệnh dưới đây, (Tôi để các gtrị cố định vì ko muốn mất tg nhập nhiều dữ liệu, chạy mỗi công trình sửa luôn lisp gốc cho tiện)


Thực ra vấn đề này chỉ có ...Hài Hòa giải quyết được, (nếu họ muốn cải tiến). Vấn đề ở chỗ họ muốn bán Roadplan nữa :blink:
Nếu chỉnh sửa trên CAD thì cũng khả thi nhưng ... chỉ dùng một lần rồi bỏ thì ok (sau này muốn tk lại hay tính lại klg thì làm lại cái khác :s_big:
Anh em tk thì ko có cách nào ..lười hơn nữa được đâu.
(Quên mất: đoạn lisp trên chạy trên NOVA2005, các lệnh cũng toàn của Nova cả, chắc bạn nhìn cũng thấy)
<<

Filename: 66347_vmp_vmt_msp_mst_vpc.lsp
Tác giả: Tue_NV
Bài viết gốc: 66312
Tên lệnh: invis
Thắc mắc về Layoff, layiso?

Mạn phép bác Bemove, Tue_NV sửa lại code của bác cho phù hợp với yêu cầu của bạn NamHai

@gp14 : Ý của NamHai là ẩn các đối tượng thuộc về 1 layer nào đó trong vùng mà ta chọn

Filename: 66312_invis.lsp
Tác giả: gia_bach
Bài viết gốc: 66019
Tên lệnh: ewb
lisp xóa tất cả các đối tượng trong 1 vùng kín

Chào các bạn.
Về cơ bản thì LISP ERC của bạn Thiệp đã giải quyết đuợc các yêu cầu xóa các đối tuợng trong, ngoài và giữa 2 đuờng bao.
Tuy nhiên với các đối tuợng có giao với đuờng bao thì Lisp ERC chưa hoàn chỉnh.
Để giải quyết vấn đề xóa các đối tuợng có giao với đuờng bao, tui dùng giải pháp là cắt các đối tuợng này tại giao điểm với đuờng bao, sử...
>>

Chào các bạn.
Về cơ bản thì LISP ERC của bạn Thiệp đã giải quyết đuợc các yêu cầu xóa các đối tuợng trong, ngoài và giữa 2 đuờng bao.
Tuy nhiên với các đối tuợng có giao với đuờng bao thì Lisp ERC chưa hoàn chỉnh.
Để giải quyết vấn đề xóa các đối tuợng có giao với đuờng bao, tui dùng giải pháp là cắt các đối tuợng này tại giao điểm với đuờng bao, sử dụng hàm break_with của CAB trên www.TheSwamp.org
Do hàm break_with chỉ cắt các đối tuợng lines, lwplines, plines, splines, ellipse, circles & arcs nên với các đối tuợng còn lại như Text, Dimension,... LISP không giải quyết triệt để. :s_big:

Các bạn chạy thử và cho ý kiến. File

<<

Filename: 66019_ewb.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 6605
Tên lệnh: tm
Lisp đánh số trang trong AutoCAD


Mã lệnh trong file SO_TRANG.lsp:
Chức năng, giống như đánh Page number của MS Word.
Yêu cầu người dùng nhập vào:
- Điểm đặt text của trang đầu tiên
- Khoảng cách giữa các trang
- hướng phát triển của các trang (theo chiều từ trái sang phải là 0 độ, dưới lên trên là 90 độ, phải sang trái là 180 và trên xuống dưới là 270.
- Giá trị đầu tiên
- Số...
>>


Mã lệnh trong file SO_TRANG.lsp:
Chức năng, giống như đánh Page number của MS Word.
Yêu cầu người dùng nhập vào:
- Điểm đặt text của trang đầu tiên
- Khoảng cách giữa các trang
- hướng phát triển của các trang (theo chiều từ trái sang phải là 0 độ, dưới lên trên là 90 độ, phải sang trái là 180 và trên xuống dưới là 270.
- Giá trị đầu tiên
- Số trang.

Lisp này hơi giống với lệnh TCount hay một số text tăng giá trị của diễn đàn. Tuy nhiên nó có sự khác biệt là đặc dụng cho đánh số trang khi các bản vẽ được đặt cạnh nhau và với kích thước giống hệt nhau.
<<

Filename: 6605_tm.lsp
Tác giả: thiep
Bài viết gốc: 65962
Tên lệnh: cpa
Chia đường cong

Đây là lisp gửi tặng các bạn có nhu cầu rải thép trên đường cong, đa giác bất kỳ.
Yêu cầu người dùng tạo trước 1 block là mặt cắt thép: gồm vòng tròn có hatch kiểu solid.
Lisp yêu cầu pick Curve, pick block mặt cắt thép, kích thước a rải thép, bán kính thép
Rải trên hay dưới curve.
ok

Các bạn dùng và rep cho mình nhé



"Mai đi rồi nhớ...
>>

Đây là lisp gửi tặng các bạn có nhu cầu rải thép trên đường cong, đa giác bất kỳ.
Yêu cầu người dùng tạo trước 1 block là mặt cắt thép: gồm vòng tròn có hatch kiểu solid.
Lisp yêu cầu pick Curve, pick block mặt cắt thép, kích thước a rải thép, bán kính thép
Rải trên hay dưới curve.
ok

Các bạn dùng và rep cho mình nhé



"Mai đi rồi nhớ CADVIET vô cùng!"
<<

Filename: 65962_cpa.lsp
Tác giả: thiep
Bài viết gốc: 65650
Tên lệnh: erc
lisp xóa tất cả các đối tượng trong 1 vùng kín

Thiep có thể gộp 2 Lisp trên lại thành 1. Lisp yêu cầu thêm: xóa các đối tượng trong hay ngoài CUR.
Còn lồng thêm lệnh extrim thì thiep không làm được như yêu cầu, vì trong lisp extrim có những hàm được viết sẵn bằng ObjectARX, không hiểu được bên trong là cái gì. Chịu, cái hiện nay thiep còn bí là:
- Làm sao Lisp hiểu được mình pick trong hay ngoài đường CUR
- Trong extrim.lsp, các...
>>

Thiep có thể gộp 2 Lisp trên lại thành 1. Lisp yêu cầu thêm: xóa các đối tượng trong hay ngoài CUR.
Còn lồng thêm lệnh extrim thì thiep không làm được như yêu cầu, vì trong lisp extrim có những hàm được viết sẵn bằng ObjectARX, không hiểu được bên trong là cái gì. Chịu, cái hiện nay thiep còn bí là:
- Làm sao Lisp hiểu được mình pick trong hay ngoài đường CUR
- Trong extrim.lsp, các listpoint (lst, lst2...) được tạo như thế nào.
Chắc nhờ bác Hoành, VNdoc, hay các bậc cao thủ khác am hiểu về ObjectARX viết tiếp thôi.
Tuy nhiên, thiep chỉ thêm một động tác gọi lệnh extrim trước để xén các đối tượng cắt ngang qua CUR, bên trong hay bên ngoài. còn sau đó, sẽ thực hiện lisp cua Thiep. Lisp erc.lsp đã chỉnh sửa:


Ngày cuối tuàn vui vẻ!.
<<

Filename: 65650_erc.lsp
Tác giả: gia_bach
Bài viết gốc: 65552
Tên lệnh: plxy
Viết Lisp theo yêu cầu

Chào vnp84055
1. mình sử dụng nhưng nó không vẽ được đường pline, chỉ hiện kích thước đoạn pline đó thôi.
-> Plxy chạy tốt trên CAD04, không rõ trên các version khác thì sao?

2. khi đánh lệnh xy thì nó bị một dòng command trắng phía dưới....
ý bạn là bỏ dòng command trắng này ?
-> điều này là không thể. không biết các cao thủ có cách nào khác không?
>>

Chào vnp84055
1. mình sử dụng nhưng nó không vẽ được đường pline, chỉ hiện kích thước đoạn pline đó thôi.
-> Plxy chạy tốt trên CAD04, không rõ trên các version khác thì sao?

2. khi đánh lệnh xy thì nó bị một dòng command trắng phía dưới....
ý bạn là bỏ dòng command trắng này ?
-> điều này là không thể. không biết các cao thủ có cách nào khác không?

Cập nhật lại LISP : PLxy

<<

Filename: 65552_plxy.lsp
Tác giả: thiep
Bài viết gốc: 65616
Tên lệnh: eoc
lisp xóa tất cả các đối tượng trong 1 vùng kín

Lisp trên hiểu cả các đường Cur không kín, còn đây lisp xóa các đối tượng ngoài Cur:

Filename: 65616_eoc.lsp
Tác giả: Tue_NV
Bài viết gốc: 65286
Tên lệnh: mudi dipl
Viết Lisp theo yêu cầu

Đây bạn :
Lệnh dipl Thực hiện bài toán thứ nhất của bạn
Lệnh mudi thực hiện bài toán thứ hai của bạn



@ NguyenKhoaDung : Lisp Này bác Hoành đã có viết rồi, bạn thử tìm kiếm xem

Filename: 65286_mudi_dipl.lsp
Tác giả: q288
Bài viết gốc: 65159
Tên lệnh: vc
Viết Lisp theo yêu cầu


bạn test thử lệnh vc sửa.

Filename: 65159_vc.lsp
Tác giả: ssg
Bài viết gốc: 6524
Tên lệnh: test
Viết Lisp theo yêu cầu

Chưa tìm ra cách gì hay hơn, bạn dùng tạm kiểu này xem có được không (C:TEST là để kiểm tra, bạn tùy nghi sử dụng boundpt theo ý riêng).
Thực chất của phương pháp là nhờ command "boundary" tìm hộ. Nhược điểm của nó giống như của chính bản thân lệnh boundary và lệnh hatch:
- Vùng được chọn phải hiển thị đầy đủ trên màn hình
- Nếu khoảng hở quá nhỏ, nó cũng bỏ qua...
>>

Chưa tìm ra cách gì hay hơn, bạn dùng tạm kiểu này xem có được không (C:TEST là để kiểm tra, bạn tùy nghi sử dụng boundpt theo ý riêng).
Thực chất của phương pháp là nhờ command "boundary" tìm hộ. Nhược điểm của nó giống như của chính bản thân lệnh boundary và lệnh hatch:
- Vùng được chọn phải hiển thị đầy đủ trên màn hình
- Nếu khoảng hở quá nhỏ, nó cũng bỏ qua luôn!
Tóm lại là những vùng mà lệnh boundary hoặc hatch thực hiện được thì hàm boundpt sẽ cho kết quả T (true)


<<

Filename: 6524_test.lsp
Tác giả: thiep
Bài viết gốc: 64887
Tên lệnh: hb hatchb%09
Viết Lisp theo yêu cầu

Xin lỗi, thiep nhầm, nó là hatchb.lsp:

Lisp rất hay ở chỗ khôi phục lại bound cho hatch kể cả đường SPLINE, ARC, CIRCLE...

Không hiểu chiều nay không upload được, bạn copy từ codebox vậy. Nếu có lỗi gì, ngày mai mạng tốt, mình sẽ up vậy.

Filename: 64887_hb_hatchb%09.lsp
Tác giả: Tue_NV
Bài viết gốc: 65016
Tên lệnh: dstt
Đánh số thứ tự tăng dần

Tue_NV mới viết cái Lisp này.
Hy vọng bạn hài lòng :

Filename: 65016_dstt.lsp
Tác giả: q288
Bài viết gốc: 65044
Tên lệnh: tinh
lisp cộng trừ nhân chia text




Bạn thử cái này xem sao.

Đối với phép + và * bạn có thể chọn 1 lúc nhiều số, còn - và / thì chỉ có 2 số thôi.




Filename: 65044_tinh.lsp

Trang 9/330

9