Jump to content
InfoFile
Tác giả: Tue_NV
Bài viết gốc: 55314
Tên lệnh: cpp
Chọn đối tượng sau lệnh Copy

Lần sau bạn đừng làm như vậy nữa nhé. Nút tick Thanks ở dưới mỗi bài viết là lời cảm ơn đồng thời là lời thông cảm chân tình nhất đấy CUONG à.
Code sau Tue_NV mày mò mãi mới hoàn thành xong. Sướng cả người được. Cảm giác thật khó tả.
Lệnh là cpp. Hy vọng chạy Code xong bạn sẽ hài lòng.

Chúc thành công nhé.
>>

Lần sau bạn đừng làm như vậy nữa nhé. Nút tick Thanks ở dưới mỗi bài viết là lời cảm ơn đồng thời là lời thông cảm chân tình nhất đấy CUONG à.
Code sau Tue_NV mày mò mãi mới hoàn thành xong. Sướng cả người được. Cảm giác thật khó tả.
Lệnh là cpp. Hy vọng chạy Code xong bạn sẽ hài lòng.

Chúc thành công nhé. :cheers:
<<

Filename: 55314_cpp.lsp
Tác giả: Tue_NV
Bài viết gốc: 55300
Tên lệnh: nhan
Lisp nhân giá trị text với 1 hệ số

Bạn chạy đoạn Lisp này thử xem :

Filename: 55300_nhan.lsp
Tác giả: jikibo
Bài viết gốc: 5518
Tên lệnh: oo
Lệnh offset đặc biệt
thử cái này đi. chắc bạn sẽ hài lòng...

Filename: 5518_oo.lsp
Tác giả: Tue_NV
Bài viết gốc: 55216
Tên lệnh: olt
lisp offset liên tục

Đây bạn. Lisp Tue_NV cải tiến chạy theo đúng ý bạn nè :

Hy vọng bạn hài lòng.
Cghúc thành công nhé :cheers:

Filename: 55216_olt.lsp
Tác giả: Tue_NV
Bài viết gốc: 55229
Tên lệnh: olt
lisp offset liên tục


Upgrade đây bạn :

Filename: 55229_olt.lsp
Tác giả: Tue_NV
Bài viết gốc: 54804
Tên lệnh: cpp
Chọn đối tượng sau lệnh Copy

Dù đã bấm tick Thanks nhưng Tue_NV vẫn gửi đến haanh lời cảm ơn chân thành nhất vì bạn thật nhiệt tình haanh ạ
Ý của CUONG20051982 là khi copy ra thì chọn lại đối tượng được copy ra đó (không phải đối tượng nguồn.
Trước khi viết đoạn Lisp này cho phép Tue_NV gửi lời cảm ơn chân thành nhất tới bác Nguyễn Hoành đã trả lời cho bài viết Làm thế nào để tìm số đối...
>>

Dù đã bấm tick Thanks nhưng Tue_NV vẫn gửi đến haanh lời cảm ơn chân thành nhất vì bạn thật nhiệt tình haanh ạ
Ý của CUONG20051982 là khi copy ra thì chọn lại đối tượng được copy ra đó (không phải đối tượng nguồn.
Trước khi viết đoạn Lisp này cho phép Tue_NV gửi lời cảm ơn chân thành nhất tới bác Nguyễn Hoành đã trả lời cho bài viết Làm thế nào để tìm số đối tượng sinh ra bởi lệnh Boundary.
Nay Tue_NV lại ứng dụng đoạn Lisp đó của bác để làm ra đoạn Lisp này. Hy vọng có ích cho mọi người

Tên lệnh là cpp.
Nếu bạn muốn dùng Multiple thì hãy sử dụng thêm lệnh Multiple của CAD kết hợp với lệnh cpp của Lisp

Command: multiple

Enter command name to repeat: cpp
........
Nếu có gì chưa được bạn CUONG20051982 post lên đây, Tue_NV sẽ chỉnh lại
Một lần nữa xin cảm ơn bác Hoành cùng mọi người trên diễn đàn.
Chúc mọi người sức khỏe. Chúc bạn haanh mẹ tròn con vuông.
Chúc mọi người thành công :cry:
<<

Filename: 54804_cpp.lsp
Tác giả: conghoa
Bài viết gốc: 5514
Tên lệnh: oo
Lệnh offset đặc biệt
Cảm ơn tác giả nhiều với lisp đơn giản nhưng khá hay!

Mục đính của lisp:

- Khi bổ chi tiết, bạn hay phải offset lớp vữa và màu của lớp vữa thường là khác với mầu tường. Bình thường khi sử dụng bạn phải offset nét tường đó ra 15 (chẳng hạn) rồi phải dùng tiếp lệnh ma để chuyển nó sang layer khác. Lisp này sẽ khắc phục những thao tác Ma nhàm chán đó.

-...
>>
Cảm ơn tác giả nhiều với lisp đơn giản nhưng khá hay!

Mục đính của lisp:

- Khi bổ chi tiết, bạn hay phải offset lớp vữa và màu của lớp vữa thường là khác với mầu tường. Bình thường khi sử dụng bạn phải offset nét tường đó ra 15 (chẳng hạn) rồi phải dùng tiếp lệnh ma để chuyển nó sang layer khác. Lisp này sẽ khắc phục những thao tác Ma nhàm chán đó.

- Lisp này sẽ offset và tự động đổi đối tượng mới sang lớp hiện hành.

- Tên lệnh : oo





@all Bạn nào có thể nâng cấp chương trình này không vậy, hiện tại mỗi lần dùng lệnh lại phải nhập lại kích thước offset, nó không lưu lại được kết quả nhập vào từ lần trước.

Thanks!
<<

Filename: 5514_oo.lsp
Tác giả: tdvn
Bài viết gốc: 55148
Tên lệnh: wbreak
muốn chia 1 đoạn cong thành nhiều đoạn cong

Đây, thử xem

Filename: 55148_wbreak.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 54545
Tên lệnh: idc
Viết Lisp theo yêu cầu

Chào bạn nguyenkhoadung98,
Bạn dùng thử cái lisp mình đã sửa này nhé. Có thể nó chưa đúng hoàn toàn với ý bạn, nhưng mình xin giải thích một chút như sau:
1/- Do bản vẽ Drawing11_1.dwg bạn post lên mình không mở được nên mình sử dụng bản vẽ lần trước để thử nghiệm.
2/- Bạn không nói rõ việc cùng đặc tính nên mình mới cho nó về cùng lớp với text gốc, còn việc trùng...
>>

Chào bạn nguyenkhoadung98,
Bạn dùng thử cái lisp mình đã sửa này nhé. Có thể nó chưa đúng hoàn toàn với ý bạn, nhưng mình xin giải thích một chút như sau:
1/- Do bản vẽ Drawing11_1.dwg bạn post lên mình không mở được nên mình sử dụng bản vẽ lần trước để thử nghiệm.
2/- Bạn không nói rõ việc cùng đặc tính nên mình mới cho nó về cùng lớp với text gốc, còn việc trùng style text mình mày mò chưa ra mà chỉ làm cùng cao độ text mẫu thôi. Việc xác định vị trí text như bài trước mình đã nói là hoàn toàn bạn có thể thay đổi mà. Trong lisp này dựa vào điều bạn đã viết mình suy luận và lấy vị trí đặt text là cùng khoảng cách tương đối với điểm chèn của block d0. Nhưng do góc text thay đổi theo đường cong nên nó cũng không chuẩn như trên hình mẫu. Góc text ở đây mình lấy theo các cặp điểm chèn liền kề chứ chưa lấy theo tiếp tuyến như bác ndtnv nói được.
3/- Thứ tự thay đổi các text từ lisp lần trước mình đã kiểm rồi và thấy nó chạy rất chuẩn mà bạn. Lần này mình cũng không thay đổi gì phần này. Bạn kiểm tra lại nhé. Bạn lưu ý là do mình chọn text mẫu chỉ có 8 ký tự nên nếu bạn thay đổi số ký tự của cái text mẫu là thua luôn đấy. Mình dùng hàm (substr ....) để cắt chuỗi mà.
4/- Trong lisp này mình dựa vào góp ý của bác Tue_NV để chỉnh cho cột vuông góc với đường chuẩn và bổ sung thêm việc chèn block và text vào điểm bắt đầu của đường chuẩn.
5/- Cái góp ý của bác ndtnv cực kỳ hay, nhưng do mình chưa thạo lắm về các hàm vlax nên còn đang loay hoay, chưa thể viết ngay cho bạn được. Bạn ráng chờ mấy bữa nữa nhé để mình tìm hiểu kỹ thêm rồi sẽ viết lại lisp khác hay hơn theo ý bác ndtnv.
Trước mắt bạn dùng tạm cái lisp này, có thể sẽ giúp bạn phần nào.

Chúc bạn vui.
<<

Filename: 54545_idc.lsp
Tác giả: Tue_NV
Bài viết gốc: 54747
Tên lệnh: c2p
nối nhiều spline!!!!

Đầu tiên, cho phép Tue_NV gửi lời cảm ơn đến bác Nguyễn Hoành, bác ssg cùng các bác trên diễn đàn. Các bác đã đặt những viên gạch đầu tiên vô cùng quý giá. Nếu hiểu đúng và đầy đủ bản chất của lệnh Lisp thì ta có thể làm rất nhiều việc lắm, tạo nên những ứng dụng cực kì hiệu quả cho công việc của mỗi chúng ta.

Chào các bạn Nani, tucdrom, haanh :
Đoạn Code...
>>

Đầu tiên, cho phép Tue_NV gửi lời cảm ơn đến bác Nguyễn Hoành, bác ssg cùng các bác trên diễn đàn. Các bác đã đặt những viên gạch đầu tiên vô cùng quý giá. Nếu hiểu đúng và đầy đủ bản chất của lệnh Lisp thì ta có thể làm rất nhiều việc lắm, tạo nên những ứng dụng cực kì hiệu quả cho công việc của mỗi chúng ta.

Chào các bạn Nani, tucdrom, haanh :
Đoạn Code sau Tue_NV đã cải tiến dựa trên Lisp của bác ssg và cải tiến dựa trên Code của bác Nguyễn Hoành đã trả lời cho bài viết Làm thế nào để tìm số đối tượng sinh ra bởi lệnh Boundary
Dựa vào ý của bạn tucdrom mình đã biến cái Spline thành Pline sau đó nối chúng lại với nhau thành 1 Pline duy nhất trong cùng một đọan Lisp

Chúc các bạn thành công :cry:
<<

Filename: 54747_c2p.lsp
Tác giả: Tue_NV
Bài viết gốc: 54762
Tên lệnh: tl
Viết Lisp theo yêu cầu

Bạn thử dùng đoạn Lisp này xem :
Lisp này mình cải tiến dựa trên Lisp cũ của bác ssg và cải tiến theo yêu cầu của bạn :
Lisp này chơi tất cả mọi đối tượng LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE


Thay vì cảm ơn nhiều nhiều hãy tick thanks nhiều nhiều để ủng hộ cho hoành tráng nào
>>

Bạn thử dùng đoạn Lisp này xem :
Lisp này mình cải tiến dựa trên Lisp cũ của bác ssg và cải tiến theo yêu cầu của bạn :
Lisp này chơi tất cả mọi đối tượng LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE


Thay vì cảm ơn nhiều nhiều hãy tick thanks nhiều nhiều để ủng hộ cho hoành tráng nào :cry:
Chúc bạn thành công.
Có gì không được post lên đây mình sẽ sửa theo ý bạn.
<<

Filename: 54762_tl.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 5440
Tên lệnh: stext
Viết Lisp theo yêu cầu
lisp dưới đây tên lệnh vẫn là STEXT, cải tiến để người sử dụng nhập thêm tỷ lệ khoảng cách dòng. Mặc định là 1.5 tức là khoảng trống cách giữa 2 dòng bằng 1.5 lần chiều cao text. Giá trị này sẽ được lưu trữ cho đến khi close file, nhấn Enter lúc nhập liệu nếu không muốn thay đổi giá trị này.


Filename: 5440_stext.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 5449
Tên lệnh: stext
Viết Lisp theo yêu cầu

Xin lỗi tôi nhầm 1 dòng lệnh.
Cảm ơn anh Bảo đã hồi âm.
Đây là mã lệnh đã sửa:


Filename: 5449_stext.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 54496
Tên lệnh: sw
Hoán đổi vị trí hai đối tượng cho nhau


Lệnh là SW:

Filename: 54496_sw.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 54199
Tên lệnh: idc
Viết Lisp theo yêu cầu


Chào bạn nguyenkhoadung98,
Bạn xài thử lisp này xem nhé. Có gì chưa được bạn hãy post lên để mình kiểm tra và sửa lại.


Lệnh chạy lisp là idc bạn nhé. Lisp này có thể đành số cột dọc theo line, polyline, spline bạn ạ.

Chúc bạn vui.

Filename: 54199_idc.lsp
Tác giả: Tue_NV
Bài viết gốc: 54271
Tên lệnh: gb
lisp-Làm thế nào để tìm số đối tượng sinh ra bởi lệnh Boundary

Hiểu ý của bạn rồi.
Để tạo thành một region ta có 2 cách :
1. Sử dụng lệnh region
2. Sử dụng lệnh Boundary. Khi sử dụng lệnh này thì có thể tạo thành region hoặc Polyline.
- Ta dùng cách 2 để tạo Region
Đây là đoạn Code viết theo ý của bạn : Tạo thành một region từ một đa giác mẹ bị khoét n lỗ bên trong.
Đoạn Lisp cũng đúng với trường hợp đa giác kín...
>>

Hiểu ý của bạn rồi.
Để tạo thành một region ta có 2 cách :
1. Sử dụng lệnh region
2. Sử dụng lệnh Boundary. Khi sử dụng lệnh này thì có thể tạo thành region hoặc Polyline.
- Ta dùng cách 2 để tạo Region
Đây là đoạn Code viết theo ý của bạn : Tạo thành một region từ một đa giác mẹ bị khoét n lỗ bên trong.
Đoạn Lisp cũng đúng với trường hợp đa giác kín không khoét lỗ.

Nhân đây, các bác trên diễn đàn cho Tue_NV hỏi là sau khi tạo Region thì Region được tạo ra nằm trùng với những đường Polyline cũ thì làm sao có ta có thể xoá được các Polyline này.
Mong các bác trợ giúp cho Tue_NV.
Cảm ơn các bác rất nhiều.
<<

Filename: 54271_gb.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 54051
Tên lệnh: xdt2
Nhờ các bác Viết Lisp kiểm tra Overlay của Polyline

Chào bạn Truongbv,
Đây là cái lisp xác định text trùng nhau hoàn toàn.


Cũng như lisp trườc lệnh là xdt2, bạn có thể thay đổi bán kính vòng tròn, vị trí đặt text, chiếu cao text theo ý bạn nhé. Mình cũng tạo một lớp mới là Loi overlay text để lưu các thông báo phát hiện lỗi.
Bạn chú ý rằng tâm vòng tròn chính là điểm đặt của text bị trùng.
Chúc bạn vui.

Filename: 54051_xdt2.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 5409
Tên lệnh: stext
Viết Lisp theo yêu cầu

Lệnh là STEXT (Sắp text). Chương trình sẽ lấy text cao nhất làm gốc.

Filename: 5409_stext.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 5413
Tên lệnh: stext
Viết Lisp theo yêu cầu

Dòng thông báo đó không sao cả, chương trình vẫn chạy đúng.
Dòng thông báo đó là do lúc viết chương trình quên một lệnh exit quiet ở cuối thôi. Đoạn mã dưới đây đã thêm dòng mã (princ) để không xuất hiện thông báo đó!
Cảm ơn bạn đã hồi âm!


Filename: 5413_stext.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 53908
Tên lệnh: xdl2
Nhờ các bác Viết Lisp kiểm tra Overlay của Polyline

Chào bạn truongbv,
Mình đã viết hoàn chỉnh cái lisp theo ý bạn. Bạn thử dùng xem nhé. Có thể kích thước vòng tròn và vị trí đặt text cũng như cao độ text chưa hoàn toàn theo ý bạn, nhưng điều này cũng dễ hiệu chỉnh bằng cách thay đổi các tham số bán kính đường tròn, chiều cao text và điểm đặt text ở các dòng lệnh command. Bạn có thể tự chỉnh theo ý bạn nhé.

>>

Chào bạn truongbv,
Mình đã viết hoàn chỉnh cái lisp theo ý bạn. Bạn thử dùng xem nhé. Có thể kích thước vòng tròn và vị trí đặt text cũng như cao độ text chưa hoàn toàn theo ý bạn, nhưng điều này cũng dễ hiệu chỉnh bằng cách thay đổi các tham số bán kính đường tròn, chiều cao text và điểm đặt text ở các dòng lệnh command. Bạn có thể tự chỉnh theo ý bạn nhé.


Rất mong bạn có ý kiến phản hồi để mình có thể chỉnh sửa cái lisp này tốt hơn.
Chúc bạn thành công
<<

Filename: 53908_xdl2.lsp

Trang 14/330

14