InfoFile
Tác giả: Tue_NV
Bài viết gốc: 166837
Tên lệnh: ai
[Yêu cầu lisp] Lisp lấy số liệu từ hộp thoại
Đúng là Lisp mà bác npham viết chưa chạy được nên Tue_NV cũng tham gia sửa 1 tí ^_^

Filename: 166837_ai.lsp
Tác giả: Tue_NV
Bài viết gốc: 53748
Tên lệnh: gb
[Đã xong] lisp-Làm thế nào để tìm số đối tượng sinh ra bởi lệnh Boundary


Đầu tiên, em xin chân thành cảm ơn bác tdvn và bác Nguyen Hoanh đă trợ giúp cho em.
Lisp của bác Hoành chạy OK. Em đă vận dụng cái Lisp của bác vào việc tính diện tích của một h́nh đa giác kín và bị khoét n lỗ ở trong.
Lisp đă chạy OK. Nhưng trước khi chạy ra kết quả (hiện ra hộp thoại AutoCAD...
>>

Đầu tiên, em xin chân thành cảm ơn bác tdvn và bác Nguyen Hoanh đă trợ giúp cho em.
Lisp của bác Hoành chạy OK. Em đă vận dụng cái Lisp của bác vào việc tính diện tích của một h́nh đa giác kín và bị khoét n lỗ ở trong.
Lisp đă chạy OK. Nhưng trước khi chạy ra kết quả (hiện ra hộp thoại AutoCAD mesage) th́ nó lại hiện ra hộp thoại Question, em phải ấn No. Và số lần em ấn No bằng với số đối tượng do lệnh Boundary tạo ra. Thiết nghĩ nguyên nhân này do lỗi ṿng lặp mà em chưa biết lỗi do đâu bác Hoành ạ. Bác và mọi người trên diễn đàn có thể giải thích dùm Tue_NV nguyên nhân được không?
Đây là h́nh ảnh của hộp thoại question :
http://www.cadviet.com/upfiles/question.jpg
C̣n đây là đoạn Code mà Tue_NV viết để tính tính diện tích của một h́nh đa giác kín và bị khoét n lỗ ở trong.

Cảm ơn mọi người thật nhiều
<<

Filename: 53748_gb.lsp
Tác giả: ssg
Bài viết gốc: 48961
Tên lệnh: dl1
Chia đất!!!

Chương tŕnh đă sửa theo ư anh vbao. User chỉ định thêm điểm cố định, đường chia d sẽ quay quanh điểm này.



Ssg chưa test kỹ lắm. Các bạn dùng thử trong nhiều trường hợp xem có sai sót ǵ không. Tạm thời dùng lệnh DL1. Khi nào ổn ssg sẽ gộp 2 chương tŕnh thành 1, kèm...
>>

Chương tŕnh đă sửa theo ư anh vbao. User chỉ định thêm điểm cố định, đường chia d sẽ quay quanh điểm này.



Ssg chưa test kỹ lắm. Các bạn dùng thử trong nhiều trường hợp xem có sai sót ǵ không. Tạm thời dùng lệnh DL1. Khi nào ổn ssg sẽ gộp 2 chương tŕnh thành 1, kèm theo option cho user.
<<

Filename: 48961_dl1.lsp
Tác giả: pdle
Bài viết gốc: 148558
Tên lệnh: dis
[Hỏi] Lisp thao tác trong 3D
Em đang vẽ một số hình trong 3D, nhưng gặp khá nhiều khó khăn vì em biết ít lệnh trong môi trường này quá. Vì thế khi có vấn đề là em đè ra viết lisp để rút ngắn thời gian.
Em gửi mấy cái lisp mà em viết lên đây, chúng dùng để thực...
>>
Em đang vẽ một số hình trong 3D, nhưng gặp khá nhiều khó khăn vì em biết ít lệnh trong môi trường này quá. Vì thế khi có vấn đề là em đè ra viết lisp để rút ngắn thời gian.
Em gửi mấy cái lisp mà em viết lên đây, chúng dùng để thực hiện những thao tác mà em cần, nhưng có thể trong CAD đã có những lệnh để thực hiện chúng, nên em mong mọi người ghóp ý cho em, ví dụ như: lisp này có thể thay bằng lệnh abc gì đó của CAD, hoặc đoạn trong lisp này có thể thay đổi lại như sau… vv.
Em cảm ơn cả nhà rất nhiều!
Sau đây, em xin đi vào chi tiết:
1. Đo khoảng cách 2 điểm và hiện ra thông báo như sau:
http://i244.photobucket.com/albums/gg18/vinhanh_hn/3-9.jpg
Lisp:

<<

Filename: 148558_dis.lsp
Tác giả: pdle
Bài viết gốc: 148558
Tên lệnh: otr
[Hỏi] Lisp thao tác trong 3D

Em đang vẽ một số hình trong 3D, nhưng gặp khá nhiều khó khăn vì em biết ít lệnh trong môi trường này quá. Vì thế khi có vấn đề là em đè ra viết lisp để rút ngắn thời gian.
Em gửi mấy cái lisp mà em viết lên đây, chúng dùng để thực...
>>
Em đang vẽ một số hình trong 3D, nhưng gặp khá nhiều khó khăn vì em biết ít lệnh trong môi trường này quá. Vì thế khi có vấn đề là em đè ra viết lisp để rút ngắn thời gian.
Em gửi mấy cái lisp mà em viết lên đây, chúng dùng để thực hiện những thao tác mà em cần, nhưng có thể trong CAD đã có những lệnh để thực hiện chúng, nên em mong mọi người ghóp ý cho em, ví dụ như: lisp này có thể thay bằng lệnh abc gì đó của CAD, hoặc đoạn trong lisp này có thể thay đổi lại như sau… vv.
Em cảm ơn cả nhà rất nhiều!
Sau đây, em xin đi vào chi tiết:
1. Đo khoảng cách 2 điểm và hiện ra thông báo như sau:
http://i244.photobucket.com/albums/gg18/vinhanh_hn/3-9.jpg
Lisp:

<<

Filename: 148558_otr.lsp
Tác giả: Phiphi-
Bài viết gốc: 50693
Tên lệnh: ei2p
[Đã xong] Lisp xuất-nhập toạ độ

+Lệnh EI2P dùng để vẽ POINT tại các điểm giao nhau của 1 Pline (màu vàng) với các Lines thẳng đứng như trong bàn vẽ.
http://www.cadviet.com/upfiles/Intersection_Points.dwg
http://img87.imageshack.us/img87/5371/intersectionpointsso8.jpg
http://img87.imageshack.us/img87/intersectionpointsso8.jpg/1/w889.png
Lisp này do bác Nataca viết:

Filename: 50693_ei2p.lsp
Tác giả: jikibo
Bài viết gốc: 432
Tên lệnh: nn
Ứng dụng LISP để vẽ bản vẽ kiến trúc (phần cơ bản)
Xong phần khởi động. Giờ là bắt đấu vẽ với LINE, với ARC...
- Ồ! những đường Line này sao không phải là PLINE nhỉ? Vừa dễ quản lư vừa nhẹ bản vẽ. Phải làm sao đây? BO lại à ? OH không !!!

Bài 4. Nối LINE và ARC thành PLINE



Lệnh để nối LINE và ARC thành PLINE là...
>>
Xong phần khởi động. Giờ là bắt đấu vẽ với LINE, với ARC...
- Ồ! những đường Line này sao không phải là PLINE nhỉ? Vừa dễ quản lư vừa nhẹ bản vẽ. Phải làm sao đây? BO lại à ? OH không !!!

Bài 4. Nối LINE và ARC thành PLINE



Lệnh để nối LINE và ARC thành PLINE là nn
<<

Filename: 432_nn.lsp
Tác giả: ssg
Bài viết gốc: 99824
Tên lệnh: med
cách chia đường cong thành đoạn không bằng nhau

1- Ư bạn muốn hoàn chỉnh như thế nào? Nói chung, các hàm dạng vlax-curve-xxxx có đủ khả năng để đảm đương việc "chia chác" curve theo đủ các kiểu ta muốn. Thật ra th́ ư của chủ topic này chưa rơ ràng: cách user nhập số liệu? Cách đáp ứng của chương tŕnh? v.v...

2- Nói về...
>>

1- Ư bạn muốn hoàn chỉnh như thế nào? Nói chung, các hàm dạng vlax-curve-xxxx có đủ khả năng để đảm đương việc "chia chác" curve theo đủ các kiểu ta muốn. Thật ra th́ ư của chủ topic này chưa rơ ràng: cách user nhập số liệu? Cách đáp ứng của chương tŕnh? v.v...

2- Nói về DIV và ME, ssg xin nêu Bài toán trồng trụ rào như sau:
Đường ranh có chiều dài L. Người ta muốn trồng các trụ rào cách đều nhau, với khoảng cách dự kiến là k.
Số khoảng chia n = L/k nói chung không phải là số nguyên -> ta phải làm tṛn n, sau đó tính lại kt = L/n, có sai khác chút ít với k dự kiến ban đầu. Bài toán này ssg gặp rất nhiều trong cơ khí: chia và khoan các lỗ cách đều nhau trên một đoạn chiều dài cho trước. Dùng ME trong trường hợp này không ổn v́ nó sẽ chừa lại một đoạn cuối cùng "không giống ai"! Để dùng DIV phải qua các bước:
- Đo chiều dài L của curve
- Dự kiến khoảng cách k
- Tính n = L/k. Làm tṛn n (có thể làm tṛn tăng hoặc giảm tùy trường hợp)
- Dùng lệnh DIV với thông số n
Ssg vẫn thường dùng lisp sau, kết hợp ME và DIV. Bạn nào có nhu cầu tương tự bài toán "trồng trụ rào" nêu trên thử dùng xem:

<<

Filename: 99824_med.lsp
Tác giả: tncd1504
Bài viết gốc: 99599
Tên lệnh: segs
Lisp convert arc, circle to polyline
Tui cần chia những đường cong như arc, circle thành những phần tử polyline để tạo wipeout và xuất wa những phần mềm tính toán bằng phương pháp phần tử hữu hạn. Tui lên google search đc cái lisp này thấy cũng ok nhưng mà nó chỉ có option chia theo segment length. Có cách nào chỉnh cái lisp này sao cho nó có thêm option chia theo...
>>
Tui cần chia những đường cong như arc, circle thành những phần tử polyline để tạo wipeout và xuất wa những phần mềm tính toán bằng phương pháp phần tử hữu hạn. Tui lên google search đc cái lisp này thấy cũng ok nhưng mà nó chỉ có option chia theo segment length. Có cách nào chỉnh cái lisp này sao cho nó có thêm option chia theo "number of segments" không? :cheers:

<<

Filename: 99599_segs.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 9979
Tên lệnh: gdi
lisp lấy ra giá trị dim overall và dim linear!

Lệnh là GDI (get dim information).


Filename: 9979_gdi.lsp
Tác giả: ssg
Bài viết gốc: 99303
Tên lệnh: vd1 vd2
Lisp lấy thông tin Printer và PaperSize
Bạn philipdn gởi message nhờ ssg một việc:

Theo đúng "Tinh thần CADVIET", ssg không trả lời riêng mà post lên đây chia sẻ cùng các bạn:



Các functions trên là để "Get...", các bạn muốn "Set..." có thể tham khảo thêm ở đây và phát triển theo ư riêng:
http://www.cadviet.com/forum/index.php?showtopic=10921

@philipdn
>>
Bạn philipdn gởi message nhờ ssg một việc:

Theo đúng "Tinh thần CADVIET", ssg không trả lời riêng mà post lên đây chia sẻ cùng các bạn:



Các functions trên là để "Get...", các bạn muốn "Set..." có thể tham khảo thêm ở đây và phát triển theo ư riêng:
http://www.cadviet.com/forum/index.php?showtopic=10921

@philipdn
Ssg lâu lâu mới vào diễn đàn. Nếu bạn post công khai th́ có lẽ đă nhận được reply từ rất nhiều bạn khác rồi, chẳng phải chờ ssg!
<<

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

Bạn dùng tạm Lisp Ghi kích thuớc đ/thẳng, cung tṛn tuơng tự yêu cầu của bạn.
Nhưng k/cách từ DIM đến đối tuợng tùy thuộc vào DIMSTYLE hiện hành _ biến DIMDLI

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

Bạn thử Lisp này nhé.
Với đối tượng là PLINE, LISP chỉ đo khoảng cách từ điểm đầu đến điểm cuối.

Filename: 99366_dim2.lsp
Tác giả: gia_bach
Bài viết gốc: 99101
Tên lệnh: cblk
Liên kết các đối tượng trong mỗi thửa (Polyline khép kín) thành 1 khối (Block) mà vị trí bản vẽ không thay đổi

Bạn viết khó hiểu quá.
Tạm dịch là : Liên kết các đối tượng trong mỗi Polyline thành 1 Block.

Filename: 99101_cblk.lsp
Tác giả: Phiphi-
Bài viết gốc: 99174
Tên lệnh: wp pw
Làm cho nét vẽ to lên trong bản vẽ ...!
Lisp này dùng để thay đổi độ dày nét. PP chưa biết tác giả là ai.
Lệnh WP

Filename: 99174_wp_pw.lsp
Tác giả: 18011985
Bài viết gốc: 98348
Tên lệnh: a12
Xuất dữ liệu từ Cad sang TXT
Ḿnh đang viết 1 đoạn lisp xuất dữ liệu ra TXT nhưng gặp1 vấn đề như sau:
- Khi thực hiện lệnh lần 1 th́ không có vấn đề ǵ.
- Thực hiện lần 2 th́ kết quả lần 2 đè lên lần 1.
( ờ đây ḿnh ghi cùng lên 1 file )
Ḿnh muốn lần 1 th́ kết quả ở ḍng 1 của file TXT.
>>
Ḿnh đang viết 1 đoạn lisp xuất dữ liệu ra TXT nhưng gặp1 vấn đề như sau:
- Khi thực hiện lệnh lần 1 th́ không có vấn đề ǵ.
- Thực hiện lần 2 th́ kết quả lần 2 đè lên lần 1.
( ờ đây ḿnh ghi cùng lên 1 file )
Ḿnh muốn lần 1 th́ kết quả ở ḍng 1 của file TXT.
Lần 2 ghi vào ḍng 2.
Lần n ghi vào ḍng n.
Sau đây là lsp của ḿnh mong các bạn góp ư và chỉ cho ḿnh.

<<

Filename: 98348_a12.lsp
Tác giả: ssg
Bài viết gốc: 9843
Tên lệnh: zz
nội suy cao độ tại giao điểm
Chương tŕnh nội suy cao độ theo các đường đồng mức và/hoặc các điểm tham chiếu. Cung cách hoạt động đúng như ssg đă tŕnh bày ở bài trước. Tên lệnh: ZZ



Thuyết minh hoạt động của chương tŕnh:
1) Nội suy theo đường đồng mức: từ điểm...
>>
Chương tŕnh nội suy cao độ theo các đường đồng mức và/hoặc các điểm tham chiếu. Cung cách hoạt động đúng như ssg đă tŕnh bày ở bài trước. Tên lệnh: ZZ



Thuyết minh hoạt động của chương tŕnh:
1) Nội suy theo đường đồng mức: từ điểm đang xét, kẻ 2 đường vuông góc (theo mặt bằng) với 2 đường đồng mức. Sau đó thực hiện nội suy theo công thức:
Z = (d1*Z2 + d2*z1) / (d1 + d2), không quan tâm đến 3 điểm có thẳng hàng hay không.

2) Nội suy theo các cặp điểm tham chiếu:
Công thức nội suy vẫn như trên. Yêu cầu tổng số điểm chọn, trừ điểm đang xét, phải là số chẵn. Nếu không, chương tŕnh sẽ ra thông báo và sau đó exit.
Xem ra cũng khá dài ḍng v́ để lấy được dữ liệu của 1 điểm phải cần đến 2 đối tượng khác loại nhau (lấy X, Y từ point và lấy Z từ text). Trong 2 thành phần đó, chương tŕnh dựa vào point là chính. Độ cao Z được lấy theo đối tượng text gần nhất so với point. Lưu ư: điểm chuẩn của text đối với chương tŕnh là điểm insert của nó. Do đó, trong các vùng phức tạp, mật độ text dày đặc, có khả năng gặp phải trường hợp “râu ông nọ cắm cằm bà kia”! Nếu có thể, nên chuyển điểm insert của text về trùng (x, y) với đối tượng point mà nó biểu diễn để bảo đảm cho chương tŕnh chạy chính xác.

3) Theo ḿnh, các bản vẽ đă “lỡ có” rồi th́ thôi. Nhưng khi lập bản vẽ mới, nên có quy ước nhất quán sẽ tạo điều kiện thuận lợi hơn cho lập tŕnh khi cần. Chẳng hạn, cách ghi text và point, nếu bảo đảm được 1 trong 2 điều kiện sau th́ chương tŕnh này sẽ đơn giản hơn rất nhiều, và hoàn toàn không phải bận tâm đến vấn đề nêu trên:
- Các đối tượng point được vẽ đúng độ cao z (giống như các pline đồng mức).
- Các đối tượng text có điểm insert đúng tọa độ x, y của point

Vbao xem và test trong nhiều trường hợp khác nhau. Nếu có vấn đề ǵ th́ phản hồi, ḿnh sẽ sửa và bổ sung.
<<

Filename: 9843_zz.lsp
Tác giả: gia_bach
Bài viết gốc: 97179
Tên lệnh: rft
lisp Phun tọa độ các điểm từ file txt vào CAD
To : khaosat2009
Rất tiếc, Tui e rằng không đủ thời gian để thực hiện các yêu cầu này.
Nhân đây nhờ các bạn khác giúp khaosat2009 giùm.

Bạn chạy thử :

Filename: 97179_rft.lsp
Tác giả: Nguyen Hoanh
Bài viết gốc: 973
Tên lệnh: chb
Hatch
Lệnh hatchedit của ACAD đời mới có thể tạo lại đường biên của Hatch.
Nhưng vẫn c̣n một điều bất tiện là mỗi lệnh chỉ tạo được đường biên của 1 đối tượng Hatch.

Xin tặng các thành viên CADViet, mă lệnh lisp để tạo được nhiều...
>>
Lệnh hatchedit của ACAD đời mới có thể tạo lại đường biên của Hatch.
Nhưng vẫn c̣n một điều bất tiện là mỗi lệnh chỉ tạo được đường biên của 1 đối tượng Hatch.

Xin tặng các thành viên CADViet, mă lệnh lisp để tạo được nhiều đường biên một lúc với lệnh hatch edit này.


<<

Filename: 973_chb.lsp
Tác giả: gia_bach
Bài viết gốc: 97675
Tên lệnh: o2b
Liên kết các đối tượng trong mỗi thửa (Polyline khép kín) thành 1 khối (Block) mà vị trí bản vẽ không thay đổi

Trong t/hợp của bạn, sử dụng BlockThuộc tính có nhiều ưu điểm hơn.
Tham khảo các bài viết về BlockThuộc tính trên CadViet : http://www.cadviet.com/sub/hsearch.php?cx=...b%2Fhsearch.php

Đây là Lisp theo yêu cầu của bạn :
liên kết các đối tượng đuợc chọn (line, Text) thành 1 khối (Block) mà VỊ TRÍ...
>>

Trong t/hợp của bạn, sử dụng BlockThuộc tính có nhiều ưu điểm hơn.
Tham khảo các bài viết về BlockThuộc tính trên CadViet : http://www.cadviet.com/sub/hsearch.php?cx=...b%2Fhsearch.php

Đây là Lisp theo yêu cầu của bạn :
liên kết các đối tượng đuợc chọn (line, Text) thành 1 khối (Block) mà VỊ TRÍ (TỌA ĐỘ) CỦA BẢN VẼ ĐÓ KHÔNG THAY ĐỔI.

<<

Filename: 97675_o2b.lsp

Trang 12/147

12