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


Của bạn đây :
Thay số 1 bằng cách ấn Enter nhé :

Filename: 72501_gktvg.lsp
Tác giả: thiep
Bài viết gốc: 72514
Tên lệnh: gtd
Viết lisp theo yêu cầu [phần 2]


Chào CH1003, Lisp chỉnh sửa này sẽ cho phép người dùng tự tạo một file mới để ghi dữ liệu, nếu chọn file có sẵn nó sẽ ghi dữ liệu đè lên file cũ. Nên nhớ rằng lisp yêu cầu mở thư mục để tạo file trước khi yêu cầu người dùng pick point:

Lisp tạm thời mở hộp thoại "tạo file ghi toa do" tại thư mục gốc là D:, còn người dùng muốn ghi vào đâu thì tùy, còn muốn thường...
>>

Chào CH1003, Lisp chỉnh sửa này sẽ cho phép người dùng tự tạo một file mới để ghi dữ liệu, nếu chọn file có sẵn nó sẽ ghi dữ liệu đè lên file cũ. Nên nhớ rằng lisp yêu cầu mở thư mục để tạo file trước khi yêu cầu người dùng pick point:

Lisp tạm thời mở hộp thoại "tạo file ghi toa do" tại thư mục gốc là D:, còn người dùng muốn ghi vào đâu thì tùy, còn muốn thường xuyên ghi vào 1 thư mục nào đó, thì sửa lại dòng này: "D:/"
Ví dụ, CH1003 muốn ghi vào thư mục đã có sẵn: "E:/Conghoan1003/data/" chẳng hạn. Còn trên máy người dùng chưa có thư mục như ví dụ trên, thì lisp sẽ mở thư mục "My documents" :s_big:
<<

Filename: 72514_gtd.lsp
Tác giả: thiep
Bài viết gốc: 72534
Tên lệnh: jd
Viết lisp theo yêu cầu [phần 2]


Chào Kamezoko,
Trước hết Thiep đề nghị định dạng lại bản vẽ của bạn như sau:
Các điểm đo là đối tượng POINT được đặt trong lớp "DIEM"
Các ký hiệu điểm đo là đối tượng TEXT được đặt trong lớp "TENDIEM"
Các cao độ điểm đo là đối tượng TEXT được đặt trong lớp "CAODO"
Các ký hiệu điểm đo phải là một ký tự chữ kèm với 1 số tự nhiên tăng...
>>

Chào Kamezoko,
Trước hết Thiep đề nghị định dạng lại bản vẽ của bạn như sau:
Các điểm đo là đối tượng POINT được đặt trong lớp "DIEM"
Các ký hiệu điểm đo là đối tượng TEXT được đặt trong lớp "TENDIEM"
Các cao độ điểm đo là đối tượng TEXT được đặt trong lớp "CAODO"
Các ký hiệu điểm đo phải là một ký tự chữ kèm với 1 số tự nhiên tăng dần. ví dụ: đường chuyền đa giác 1: I.1, I.2, I.3... I.100, đường chuyền đa giác 2: H-1, H-2, H-3 ... H-100, không được là II.1, II.2, II.3 ...Nếu bạn lỡ ký hiệu như vậy thì dùng chức năng find and replace của CAD để chỉnh sửa lại.
Lisp sẽ tự động dò các điểm có ký hiệu cùng 1 kiểu đường chuyền sẽ nối với nhau thành một 3dpolyline
Thiep dùng lisp JD của bác Hoanh chỉnh sửa lại cho phù hợp với bạn hơn.
Các bạn trắc địa dùng và cho ý kiến nhé:

Còn đây là bản vẽ Thiep đã test:
http://www.cadviet.com/upfiles/2/vd_3_1.dwg
<<

Filename: 72534_jd.lsp
Tác giả: gia_bach
Bài viết gốc: 72393
Tên lệnh: linkr
LISP : Ánh xạ giá trị đối tượng (thay đổi giá trị nguồn -> Đích cập nhật theo)

Bạn tham khảo 1 ví dụ về REACTOR :
- Cập nhật bán kính (đuờng kính) vòng tròn khi có sự thay đổi bán kính (đuờng kính) của bất kỳ đối tuợng vòng tròn đã chọn.
đối tượng đích cập nhật ngay sau khi đối tượng nguồn thay đổi không cần lệnh Regen, ...
Cách sử dụng :
1. sau khi load Lisp, tại dấu nhắc gõ lệnh LinkR -> chọn các vòng tròn cần Link với nhau -> enter kết...
>>

Bạn tham khảo 1 ví dụ về REACTOR :
- Cập nhật bán kính (đuờng kính) vòng tròn khi có sự thay đổi bán kính (đuờng kính) của bất kỳ đối tuợng vòng tròn đã chọn.
đối tượng đích cập nhật ngay sau khi đối tượng nguồn thay đổi không cần lệnh Regen, ...
Cách sử dụng :
1. sau khi load Lisp, tại dấu nhắc gõ lệnh LinkR -> chọn các vòng tròn cần Link với nhau -> enter kết thúc lệnh.
2. thay đổi bán kính (đuờng kính) của bất kỳ đối tuợng vòng tròn đã chọn ở buớc 1 -> xem kết quả các vòng tròn còn lại trong tập hợp đã chọn ở buớc 1.


<<

Filename: 72393_linkr.lsp
Tác giả: thiep
Bài viết gốc: 72398
Tên lệnh: tn
Viết lisp theo yêu cầu [phần 2]

Chào truongthanh,
2 lisp Thiep đã chỉnh sửa theo ý của bạn. Còn khi đánh lệnh tn xong, bị lỗi là do dòng lệnh này:
(command ".style" "ahs-Arial" "Arial" "" "0.8" "" "" "" "" ""). Thiep cũng chỉnh sửa xong. Phải mất nhiều thời gian mới tìm ra lỗi này, tác giả trước đây đã thêm 2 lần enter.

Filename: 72398_tn.lsp
Tác giả: thiep
Bài viết gốc: 72398
Tên lệnh: tsd
Viết lisp theo yêu cầu [phần 2]

Chào truongthanh,
2 lisp Thiep đã chỉnh sửa theo ý của bạn. Còn khi đánh lệnh tn xong, bị lỗi là do dòng lệnh này:
(command ".style" "ahs-Arial" "Arial" "" "0.8" "" "" "" "" ""). Thiep cũng chỉnh sửa xong. Phải mất nhiều thời gian mới tìm ra lỗi này, tác giả trước đây đã thêm 2 lần enter.

Filename: 72398_tsd.lsp
Tác giả: thiep
Bài viết gốc: 72319
Tên lệnh: tn
Viết lisp theo yêu cầu [phần 2]

Chào TruongThanh, nhìn chung, tác giả của 2 lisp bạn sưu tầm không chịu khó chỉnh sửa, ví dụ muốn tạo Layer có tên "ahs-tnt-TSC" nhưng không tạo, các tham số đường kính không đưa vào text. 2 lisp trên mình đã chỉnh sửa cho bạn:

Filename: 72319_tn.lsp
Tác giả: thiep
Bài viết gốc: 72319
Tên lệnh: tsd
Viết lisp theo yêu cầu [phần 2]

Chào TruongThanh, nhìn chung, tác giả của 2 lisp bạn sưu tầm không chịu khó chỉnh sửa, ví dụ muốn tạo Layer có tên "ahs-tnt-TSC" nhưng không tạo, các tham số đường kính không đưa vào text. 2 lisp trên mình đã chỉnh sửa cho bạn:

Filename: 72319_tsd.lsp
Tác giả: Tue_NV
Bài viết gốc: 72315
Tên lệnh: imp
Viết lisp theo yêu cầu [phần 2]

Bạn dùng đoạn Lisp sau :
Trong đoạn Code có sử dụng hàm con POS của anh Hoành và hàm REPLACESTRING của anh giabach
Tue_NV xin mạn phép sử dụng 2 hàm con này để giúp cho bạn duongthanh85.
Cảm ơn anh Hoành và anh giabach

Filename: 72315_imp.lsp
Tác giả: Tue_NV
Bài viết gốc: 72239
Tên lệnh: imppnt%09
Lisp thay đổi độ cao node của PL-DONE

Chào Tuynh
Mạn phép bác Hoành cho phép Tue_NV chỉnh lại Code của bác để giúp cho bạn Tuynh
@Tuynh : Chạy Lisp sau -> Chọn File txt của bạn -> sẽ được kết quả

Có gì chưa được hãy post lên đây. Tue_NV sẽ chỉnh lại giúp bạn

Filename: 72239_imppnt%09.lsp
Tác giả: Tue_NV
Bài viết gốc: 72260
Tên lệnh: 2d3d
Viết lisp theo yêu cầu [phần 2]

@duongthanh85 : Bạn nên upload file .dwg và nói rõ hơn. Vì có thể mình chưa hiểu hết điều bạn nói

Filename: 72260_2d3d.lsp
Tác giả: thiep
Bài viết gốc: 72058
Tên lệnh: 3dp
Lisp thay đổi độ cao node của PL-DONE
Tuynh:
Mình đưa file lên đây
http://www.cadviet.com/upfiles/2/2d3d.dwg
đường 2d poline có cao độ là 10, đường 3d poline có cao độ khác nhau tại các điểm point, bạn có lisp nào mà khi pick vào đường
2d poline thì tại các điểm point hiện cao độ cho mình nhập theo ý muốn và đường 2d poline chuyển thành 3d poline.

Chào Tuynh, lisp sau đây, yêu cầu Bạn pick các node của polyline sẽ...
>>
Tuynh:
Mình đưa file lên đây
http://www.cadviet.com/upfiles/2/2d3d.dwg
đường 2d poline có cao độ là 10, đường 3d poline có cao độ khác nhau tại các điểm point, bạn có lisp nào mà khi pick vào đường
2d poline thì tại các điểm point hiện cao độ cho mình nhập theo ý muốn và đường 2d poline chuyển thành 3d poline.

Chào Tuynh, lisp sau đây, yêu cầu Bạn pick các node của polyline sẽ biến 2D polyline thành 3D polyline. Sau đó bạn tiếp tục thay đổi độ cao các node của 3d polyline

Tuy nhiên, nếu bạn thay đổi 1 polyline có hàng 100 node thì nên dùng cách khác nhanh hơn: Dùng bảng kê tọa độ trong Excel đổi qua đuôi *.csv, sau đó xây dựng 1 3D polyline theo 1 lisp khác.
<<

Filename: 72058_3dp.lsp
Tác giả: TRUNGNGAMY
Bài viết gốc: 72081
Tên lệnh: tg
Lisp lấy tập hợp tọa độ giao điểm

Bạn tham khảo đoạn code này

Filename: 72081_tg.lsp
Tác giả: Tue_NV
Bài viết gốc: 71787
Tên lệnh: sxt
Viết Lisp theo yêu cầu

Bạn sử dụng Code này thử nhé :

Filename: 71787_sxt.lsp
Tác giả: thiep
Bài viết gốc: 71414
Tên lệnh: heipoint
Xin lisp xuất cao độ dạng text khi pick trên bình đồ

Lisp Thiep viết yêu cầu người dùng pick điểm cần xác định độ cao, pick contour thứ 1 gần điểm cần xác định độ cao, pick contour thứ 2 gần điểm cần xác định độ cao:

Filename: 71414_heipoint.lsp
Tác giả: gia_bach
Bài viết gốc: 71234
Tên lệnh: test
Viết Lisp theo yêu cầu

To : moihoclisp
Bạn chạy thử lisp tìm tọa độ Xmin, Ymin, Xmax, Ymax của 1 đối tượng.
Sau đó bạn có thể phát triển Code cho các đối tượng trên bản vẽ

Filename: 71234_test.lsp
Tác giả: Thaistreetz
Bài viết gốc: 71341
Tên lệnh: tdn
Lisp ghi tọa độ rất hay mà bị lỗi!


Hi vọng bạn đã hài lòng với code này.
- Cho phép lựa chọn ghi tên điểm tọa độ tự động (giống lisp trước) hay thủ công (Pick chuột vào text có sẵn - tên cọc trên tuyến chẳng hạn)
- Cho phép ghi text tọa độ theo một góc xiên bất kỳ
- Cho phép lựa chọn có xuất bảng tọa độ hay không.

Filename: 71341_tdn.lsp
Tác giả: gia_bach
Bài viết gốc: 71345
Tên lệnh: test
Viết Lisp theo yêu cầu

To Thaistreetz
Có phải bạn nói dòng này :
(mapcar '/ (mapcar '+ (car lst_pt) (cadr lst_pt)) '(2.0 2.0))

Filename: 71345_test.lsp
Tác giả: Thaistreetz
Bài viết gốc: 71157
Tên lệnh: stt
Viết Lisp theo yêu cầu


Mình đổi tên lệnh lại nhé, lisp trước mình gõ nhầm tên lệnh stt thành ra là sst nên khi sử dụng dễ gõ nhầm thành stt.
Code đã sửa lại. Nếu không nhập chữ số thập phân khi chương trình hỏi thì chương trình mặc định nó là 0 nhé.

Filename: 71157_stt.lsp
Tác giả: thiep
Bài viết gốc: 71194
Tên lệnh: vbu khd
Viết Lisp theo yêu cầu
Gửi Hoan, bây giờ thì Ý tưởng của Hoan đã được hoàn thiện bằng lisp sau đây. Khi chọn đối tượng, Hoan phải chọn cả đường địa hình tự nhiên và cả đường giới hạn cùng 1 lúc, cứ tiếp tục cho đến hết mặt cắt, enter kết thúc. :bigsmile:

Filename: 71194_vbu_khd.lsp

Trang 6/315

6