Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
hhhhgggg

Lisp tính toán san nền !

Các bài được khuyến nghị

Các bác Pro à, Chắc bài toán san nền thì nhiều người gặp phải. Nhưng 1 Lisp phục vụ hữu ích cho việc đó 1 cách đơn giản thì chưa hẳn đã nhiều người biết. Loay hoay viết mãi, Em cũng viết được 1 cái cho riêng mình. Nhưng lisp đó chỉ mang tính chất cục bộ mà không tổng quát. Em đưa đầu bài tổng quát để cả nhà cùng giải nhé.

Bài toán san nền:

Cao độ thiết kế là A

cao độ tự nhiên( Mặt đất hiện trạng) là B

Trước khi san nền, bóc bỏ toàn bộ mặt đất hiện trạng đi 1 bề dày bằng C

Kẻ lưới chia ô khu đất cần san nền, kích thưóc mắt lưới tùy chọn ( Thường là 5mx5m )

TRên các nút của mắt lưới, ta có các text A,B, (A-:cheers:

tại chính giữa ô lưới là thông số về diện tích ô, khối lượng đào, đắp.

Ban đầu, ta phải pick tay diện tích ô đất, trừ thủ công ra con số (A-:cheers:

Yêu cầu, Dựa vào hiệu (A-:cheers: để tính được khối lựợng san nền của các ô, trong các trường hợp ô là hình chữ nhật, là hình tam giác.

Bài toán này tưởng chừng phức tạp nhưng thật ra rất đơn giản. Mong các bác Pro quan tâm giúp đỡ.

đây là file em làm, File này chưa làm chính xác 100% nên các bác đừng cười em nhé !

http://www.cadviet.com/upfiles/2/san_nen_1.dwg

Code lisp tính giá trị trung bình:

(defun c:snn ()

(prompt "\nChon text de tinh trung binh cong:")

(setq ss (ssget '((0 . "TEXT")))

sl (sslength ss)

kqua 0

)

(while (and ss (> (sslength ss) 0))

(setq

kqua (+ kqua

(atof (cdr (assoc 1 (entget (setq ent (ssname ss 0))))))

)

)

(ssdel ent ss)

)

(setq kqua (/ kqua sl))

(princ kqua)

 

(setq obj (vlax-ename->vla-object

(car (entsel "\nChon text de ghi ket qua:"))

)

)

(vla-put-TextString obj (rtos kqua 2 2))

)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Các bác Pro à, Chắc bài toán san nền thì nhiều người gặp phải. Nhưng 1 Lisp phục vụ hữu ích cho việc đó 1 cách đơn giản thì chưa hẳn đã nhiều người biết. Loay hoay viết mãi, Em cũng viết được 1 cái cho riêng mình. Nhưng lisp đó chỉ mang tính chất cục bộ mà không tổng quát. Em đưa đầu bài tổng quát để cả nhà cùng giải nhé.

Bài toán san nền:

Cao độ thiết kế là A

cao độ tự nhiên( Mặt đất hiện trạng) là B

Trước khi san nền, bóc bỏ toàn bộ mặt đất hiện trạng đi 1 bề dày bằng C

Kẻ lưới chia ô khu đất cần san nền, kích thưóc mắt lưới tùy chọn ( Thường là 5mx5m )

TRên các nút của mắt lưới, ta có các text A,B, (A-:cheers:

tại chính giữa ô lưới là thông số về diện tích ô, khối lượng đào, đắp.

Ban đầu, ta phải pick tay diện tích ô đất, trừ thủ công ra con số (A-:cheers:

Yêu cầu, Dựa vào hiệu (A-:cheers: để tính được khối lựợng san nền của các ô, trong các trường hợp ô là hình chữ nhật, là hình tam giác.

Bài toán này tưởng chừng phức tạp nhưng thật ra rất đơn giản. Mong các bác Pro quan tâm giúp đỡ.

đây là file em làm, File này chưa làm chính xác 100% nên các bác đừng cười em nhé !

http://www.cadviet.com/upfiles/2/san_nen_1.dwg

Code lisp tính giá trị trung bình:

(defun c:snn ()

(prompt "\nChon text de tinh trung binh cong:")

(setq ss (ssget '((0 . "TEXT")))

sl (sslength ss)

kqua 0

)

(while (and ss (> (sslength ss) 0))

(setq

kqua (+ kqua

(atof (cdr (assoc 1 (entget (setq ent (ssname ss 0))))))

)

)

(ssdel ent ss)

)

(setq kqua (/ kqua sl))

(princ kqua)

 

(setq obj (vlax-ename->vla-object

(car (entsel "\nChon text de ghi ket qua:"))

)

)

(vla-put-TextString obj (rtos kqua 2 2))

)

Bạn sưu tầm líp trên diễn đàn xem đã có những gì bạn cần chưa. Nếu đã có bạn hãy dùng và nêu ra những gì chưa có để mọi người giúp

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×