Jump to content
InfoFile
Tác giả: phamthanhbinh
Bài viết gốc: 113407
Tên lệnh: nbl
Viết lisp theo yêu cầu [phần 2]


Hề hề hề,
Kêu lắm làm chi cho rát cổ vậy. Cứ củ từ cho chắc bạn ạ.
Bạn dùng thử cái này coi đã ưng ý chưa, nếu chưa thì pót lên và chịu khó đợi nghen. Đừng làm mất trật tự trên diễn đàn. Hề hề hề...


Không ai giúp vì không ai rảnh, vì không ai hiểu, vì không ai muốn, vì ..... vì..... vì......
Phải biết kiên nhẫn bạn ạ, quan cần mà dân chửa vội,...
>>

Hề hề hề,
Kêu lắm làm chi cho rát cổ vậy. Cứ củ từ cho chắc bạn ạ.
Bạn dùng thử cái này coi đã ưng ý chưa, nếu chưa thì pót lên và chịu khó đợi nghen. Đừng làm mất trật tự trên diễn đàn. Hề hề hề...


Không ai giúp vì không ai rảnh, vì không ai hiểu, vì không ai muốn, vì ..... vì..... vì......
Phải biết kiên nhẫn bạn ạ, quan cần mà dân chửa vội, quan vội thì quan lội mà đi. Mọi sự giúp đỡ đều phải có thời gian của nó chứ không phải cứ muốn là phải có người giúp bạn hiểu chứ....
Hề hề hề.....
<<

Filename: 113407_nbl.lsp
Tác giả: ketxu
Bài viết gốc: 113417
Tên lệnh: od
Bản mini trích thửa


- Xóa tất cả đối tượng phía ngoài và không chạm đường bao

Filename: 113417_od.lsp
Tác giả: ketxu
Bài viết gốc: 113455
Tên lệnh: fl
Fillet copy Layer


- Sau khi fillet, đối tượng sau sẽ nhận Layer của đối tượng đầu (với đối tượng đầu là Pline thì CAD mặc định nối vào thành 1 Pline chung Layer)



Filename: 113455_fl.lsp
Tác giả: phamngoctukts
Bài viết gốc: 113380
Tên lệnh: ctxt
Viết lisp theo yêu cầu [phần 2]

của bạn đây

Filename: 113380_ctxt.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 113390
Tên lệnh: chwf
Viết lisp theo yêu cầu [phần 2]

Việc ghép vào lisp artxt là không cần thiết bởi mình đã ghép rồi bạn ạ.
Còn để riêng thì nó đây nè:


Hề hề hề, cái "bà nhũ" ấy của mình bác Phamngoctukts xơi mất rồi còn đâu????

@ Bác Pha5mngoctukts: có thể sử dụng mã DXF 62 để đổi màu cho nó cùng gu bác ạ........

Filename: 113390_chwf.lsp
Tác giả: nguyentuyen6
Bài viết gốc: 113353
Tên lệnh: 8
Viết lisp theo yêu cầu [phần 2]

Mình làm cái chỉnh tất cả width_factor về 0.8 đc thôi. nhưng chỉ là TEXT thôi nhé. Mtext thì mình chưa làm.


Filename: 113353_8.lsp
Tác giả: ketxu
Bài viết gốc: 113297
Tên lệnh: nc
Vẽ nét cắt

- Vẽ nét cắt zic zắc


Filename: 113297_nc.lsp
Tác giả: phamngoctukts
Bài viết gốc: 112853
Tên lệnh: tddmoi
Viết lisp theo yêu cầu [phần 2]

Chào bác Tue_VN em đã nghiên cứu tiếp phần pline cong và arc. Em port lên đây Các Bác test giúp xem còn lỗi gì không nhé.

http://www.cadviet.com/upfiles/3/arc.jpg

Filename: 112853_tddmoi.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 11301
Tên lệnh: jd
Viết Lisp theo yêu cầu


Lệnh là JD (Joint các Điểm).

Chương trình yêu cầu bạn nhập các đối tượng vào (lẫn lộn cả point và text). Chương trình tự phân biệt đâu là point, đâu là tên điểm và đâu là code rồi thực thi như yêu cầu của bạn.

Text không cần trùng điểm chèn với point mà chỉ cần gần point là chương trình nhận biết được.


Filename: 11301_jd.lsp
Tác giả: phamngoctukts
Bài viết gốc: 113213
Tên lệnh: loc
Viết lisp theo yêu cầu [phần 2]

Chào bạn w1ndream!
Mình đã viết xong code cho bạn đây. Việc select all của bạn theo mình là không nên dùng vì trong bản vẽ có nhiều text mà mình không muốn xử lý thì nó.
Với việc select all thì số lượng text sẽ rất lớn do vậy việc xử lý của lisp sẽ bị chậm. Nếu bạn muốn nhanh thì nên select khoảng 2 bản vẽ một lần. Nói thì nói vậy thôi mình vẫn nhét thằng "x" vào trong ssget...
>>

Chào bạn w1ndream!
Mình đã viết xong code cho bạn đây. Việc select all của bạn theo mình là không nên dùng vì trong bản vẽ có nhiều text mà mình không muốn xử lý thì nó.
Với việc select all thì số lượng text sẽ rất lớn do vậy việc xử lý của lisp sẽ bị chậm. Nếu bạn muốn nhanh thì nên select khoảng 2 bản vẽ một lần. Nói thì nói vậy thôi mình vẫn nhét thằng "x" vào trong ssget cho bạn. Nếu bạn muốn select từng nhóm để xử lý thì bạn mở file loc.lsp bằng nodepat xoá "x" tại dòng
(setq ss (ssget "x" '((0 . "TEXT")))). Chúc bạn vui.

<<

Filename: 113213_loc.lsp
Tác giả: gia_bach
Bài viết gốc: 112805
Tên lệnh: makebo
Viết lisp theo yêu cầu [phần 2]
Lisp tạo BOUNDARY từ tập chọn các LINE cải tiến từ lisp của phamngoctukts.
Nội dung chính :
- duyệt qua tất cả các đối tuợng
+ tìm giao điểm với tất cả các đối tuợng khác
+ vẽ LINE mới qua các giao điểm này
- tạo REGION từ tập các LINE mới tạo
- convert các region thành Pline (xóa Pline bao trùm)
Kết quả :
- tạo đuợc khoảng 99% Boundary nhưng chỉ chấp...
>>
Lisp tạo BOUNDARY từ tập chọn các LINE cải tiến từ lisp của phamngoctukts.
Nội dung chính :
- duyệt qua tất cả các đối tuợng
+ tìm giao điểm với tất cả các đối tuợng khác
+ vẽ LINE mới qua các giao điểm này
- tạo REGION từ tập các LINE mới tạo
- convert các region thành Pline (xóa Pline bao trùm)
Kết quả :
- tạo đuợc khoảng 99% Boundary nhưng chỉ chấp nhận LINE
- không bị mất đối tuợng ban đầu
(T/hợp muốn áp dụng cho Pline, Arc thì dùng Lisp Break_ALL của CAB)


<<

Filename: 112805_makebo.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 11282
Tên lệnh: fz
tìm kiếm và hiển thị thông tin

Lisp dưới đây tìm kiếm text và zoom tới nó. Lệnh là FZ (find and zoom).

Filename: 11282_fz.lsp
Tác giả: phamthanhbinh
Bài viết gốc: 112714
Tên lệnh: artxt
Viết lisp theo yêu cầu [phần 2]

Chào bạn W1ndream,
Bạn xài thử cái này xem đã đúng ý chưa nhé.


Đây là cái mình chạy ra từ bản vẽ mẫu bạn post, nếu có gì chưa ổn hãy post lên nhé.
http://www.cadviet.com/upfiles/3/windream.jpg
Và đây là file cad đã chạy lisp. Rất tiếc trang upload của diễn đàn bị l64i kh6ng upload file được, mình sẽ up sau nếu cần đối chứng.
>>

Chào bạn W1ndream,
Bạn xài thử cái này xem đã đúng ý chưa nhé.


Đây là cái mình chạy ra từ bản vẽ mẫu bạn post, nếu có gì chưa ổn hãy post lên nhé.
http://www.cadviet.com/upfiles/3/windream.jpg
Và đây là file cad đã chạy lisp. Rất tiếc trang upload của diễn đàn bị l64i kh6ng upload file được, mình sẽ up sau nếu cần đối chứng.
http://www.cadviet.com/upfiles/3/km15__km16_2.dwg
Chúc bạn vui.

Bài được chỉnh sửa bổ sung bởi Phạm Thanh Bình ngày 17-18/10/2010 dựa vào sự tham khảo từ bác Phamngoctukts và bác Giabach
<<

Filename: 112714_artxt.lsp
Tác giả: phamngoctukts
Bài viết gốc: 112740
Tên lệnh: loc
Viết lisp theo yêu cầu [phần 2]

Xin lỗi Bác Bình đúng là code đó sai mất vài chỗ do ẩu quá đây mà. Bạn w1ndream down code mới này nhé.

Filename: 112740_loc.lsp
Tác giả: w1nDream
Bài viết gốc: 112769
Tên lệnh: gc
Viết lisp theo yêu cầu [phần 2]


Em có đoạn Lisp này dãn Text rất nhanh.Em gửi rồi bác xử lý kết hợp xem thế nào nhé:



Rất cảm ơn các Pác! :lol: !

Filename: 112769_gc.lsp
Tác giả: phamngoctukts
Bài viết gốc: 112706
Tên lệnh: loc
Viết lisp theo yêu cầu [phần 2]

Của bạn đây

Filename: 112706_loc.lsp
Tác giả: phamngoctukts
Bài viết gốc: 112301
Tên lệnh: dv
Viết lisp theo yêu cầu [phần 2]

Của bạn đây. Hơn cả sự mong đợi.

Filename: 112301_dv.lsp
Tác giả: 18011985
Bài viết gốc: 111443
Tên lệnh: mahoa
chuyển chữ thành số
hì hì Các bạn viết vui ghê, mình góp ý chút xíu nếu sử dụng bảng mã ASCII thì viết không có dấu. Mình cũng đã viết để mã hoá lisp roài chia sẻ cho các bạn một chút hì hì. Bạn thử sử dụng đoạn code sau nhé.

Còn để dịch ngược thì các bạn dùng hàm vl-list->string chúc các bạn zui zẻ.
PS: Lisp này chỉ viết được 1 đoạn ký tự nối tiếp muốn viết thành đoạn dài thì phải...
>>
hì hì Các bạn viết vui ghê, mình góp ý chút xíu nếu sử dụng bảng mã ASCII thì viết không có dấu. Mình cũng đã viết để mã hoá lisp roài chia sẻ cho các bạn một chút hì hì. Bạn thử sử dụng đoạn code sau nhé.

Còn để dịch ngược thì các bạn dùng hàm vl-list->string chúc các bạn zui zẻ.
PS: Lisp này chỉ viết được 1 đoạn ký tự nối tiếp muốn viết thành đoạn dài thì phải nhập từ DIALOG không có cứ có dấu space là nó kết thúc.
<<

Filename: 111443_mahoa.lsp
Tác giả: gia_bach
Bài viết gốc: 111836
Tên lệnh: test1
Viết lisp theo yêu cầu [phần 2]

Chào bác Bình
Cá nhân tôi thấy ý tuởng này khá hay.
Chỉ xin bổ sung phần lọc boundary như sau :
- gọi tập SSboundary là tập các boundary đuợc tao ra.
- nếu điểm Pt không nằm trong các boundary này (SSboundary) -> tạo boundary tại điểm Pt.
(hàm này bạn Tuệ có viết rồi.)
Để khắc phục nhược điểm mà bác nêu, chúng ta gán bán kính polar bằng khoảng cách nhỏ nhất...
>>

Chào bác Bình
Cá nhân tôi thấy ý tuởng này khá hay.
Chỉ xin bổ sung phần lọc boundary như sau :
- gọi tập SSboundary là tập các boundary đuợc tao ra.
- nếu điểm Pt không nằm trong các boundary này (SSboundary) -> tạo boundary tại điểm Pt.
(hàm này bạn Tuệ có viết rồi.)
Để khắc phục nhược điểm mà bác nêu, chúng ta gán bán kính polar bằng khoảng cách nhỏ nhất giữa các điểm trong tập điểm tìm đuợc ở buớc 1.
Về góc phân bố : vì thông thuờng thửa đất ít khi có góc nhỏ hơn 15 độ, nên tạm chọn góc = 15 độ
(nếu yêu cầu chính xác hơn thì chọn góc nhỏ xuống)

Gửi các bác hàm tìm tất cả giao điểm của tập chọn (*LINE,ARC,CIRCLE,ELLIPSE)

<<

Filename: 111836_test1.lsp
Tác giả: phamngoctukts
Bài viết gốc: 111374
Tên lệnh: chutoso
chuyển chữ thành số
Dạo này ít người yêu cầu viết lisp quá nên mình viết nghịch chơi cái lisp này.
Ngày xưa các bác chắc cũng từng thương thầm chộm nhớ một người nào đấy. Muốn viết thư cho người ta mà lại e ngại không biết ý người ta thế nào.
Thế là các bác này nghĩ ra cái chò viết thư bằng số.
Ý nghĩa là nếu người ta có thích mình thì sẽ tìm cách mày mò để dịch (điều này kiểm tra...
>>
Dạo này ít người yêu cầu viết lisp quá nên mình viết nghịch chơi cái lisp này.
Ngày xưa các bác chắc cũng từng thương thầm chộm nhớ một người nào đấy. Muốn viết thư cho người ta mà lại e ngại không biết ý người ta thế nào.
Thế là các bác này nghĩ ra cái chò viết thư bằng số.
Ý nghĩa là nếu người ta có thích mình thì sẽ tìm cách mày mò để dịch (điều này kiểm tra luôn IQ của người đó). Nếu người đó không thích mình thì vèo một cái bay vào sọt rác.
Code đây (dành cho các bác nhát gan). Chú ý chữ để dịch phải không có dấu.

<<

Filename: 111374_chutoso.lsp

Trang 48/330

48