Lisp Tính Diện Tích Hàng Loạt, Lisp Tính Diện Tích Trong Cad Cực Hay

bác nào viết giúp em cái lisp tính diện tích 1 hình vẽ kín mà mình chỉ cần pick vao khoảng không ở bên trong của hình là tính được diện tích rồi giống như khi mình hatch í, em đã đọc bài học lisp đơn giản của bác Hoành nhưng toàn phải joint các đối tượng lai với nhau thì mới tính được thôi.

Đang xem: Lisp tính diện tích hàng loạt

*

*

tucdrom 644

— T — U — N — A —Thành viên 644488 bài viếtGiới tính:MaleVị trí:•♥Hưng yên♥•Sở thích:xxx…
bác nào viết giúp em cái lisp tính diện tích 1 hình vẽ kín mà mình chỉ cần pick vao khoảng không ở bên trong của hình là tính được diện tích rồi giống như khi mình hatch í, em đã đọc bài học lisp đơn giản của bác Hoành nhưng toàn phải joint các đối tượng lai với nhau thì mới tính được thôi.

Lần sau bạn chịu khó Search trên diễn đàn hoặc trên Google trước rồi hãy đặt câu hỏi nhé.Lisp của bạn đây :

https://lingocard.vn/caddata/2_Auto_Lisp…hướng dẫn-1.html

 

Chú ý:Nếu miền cần tính diện tích được tạo bởi 1 Polyline khép kín thì bạn có thể dùng lệnh Properties(Ctrl+1),hoặc Li(List).

 

Còn nếu miền cần tính diện tích được tạo bởi các Line riêng biệt thì bạn có thể dùng lệnh Aa(Area).

 

Chúc thành công !!!

 

:undecided: :cheers: :cheers:

*

bác nào viết giúp em cái lisp tính diện tích 1 hình vẽ kín mà mình chỉ cần pick vao khoảng không ở bên trong của hình là tính được diện tích rồi giống như khi mình hatch í, em đã đọc bài học lisp đơn giản của bác Hoành nhưng toàn phải joint các đối tượng lai với nhau thì mới tính được thôi.

Bạn có thể tham khảo hai lệnh sau : lệnh DT1 dừng lại cho bạn xem đường bao, lệnh DT2 không dừng lại.

Đây là lệnh tạo đường bao theo cơ chế của AutoCAD. Các đối tượng tạo đường bao phải nằm trọn trong màn hình và tương đối đơn giản.

Đối với hình phức tạp hay nằm ngoài màn hình như tuyến thủy hệ, giao thông chằng chịt, lệnh này không tốt lắm.

Xem thêm: Giáo Án Toán 9 Bài Phương Trình Bậc Hai Một Ẩn Mới Nhất, Giáo Án Lớp 9 Môn Đại Số

 

;Ham tinh dien tich bang lenh bpoly

(defun tinhdtich( p / name)

(setq name (entlast))

(command “Bpoly” p “\”);

(if (null (equal name (entlast)))

(progn

(command “area” “O” “l”)

(command “_.erase” “l” “”)

(getvar “area”)

)

(PROGN

(alert “Khong khep”)

NIL

)

)

)

(defun C:DT1()

(SETQ P (GETPOINT ”
PICK”))

(IF P (TINHDTICH P))

)

(defun C:DT2( / old)

(setq old (getvar “osmode”))

(bpoly (getpoint ”
Pick”))

(setvar “osmode” old)

(command “_area” “o” “l”)

(entdel (entlast))

(rtos (getvar “area”) 2 1)

)

*

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

vminh_ct 5

*

vminh_ct 5

biết lệnh stretchThành viên 5165 bài viết
Đã đăng Tháng 3 9, 2009

Thanks các Bro nhé,mới tập tọe biết về lisp lên em còn phải học hỏi nhiều.

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

phamthanhbinh 3.140

*

phamthanhbinh 3.140

biết lệnh adcenterVip 3.1405.864 bài viết
Đã đăng Tháng 3 15, 2009
Bạn có thể tham khảo hai lệnh sau : lệnh DT1 dừng lại cho bạn xem đường bao, lệnh DT2 không dừng lại.

Đây là lệnh tạo đường bao theo cơ chế của AutoCAD. Các đối tượng tạo đường bao phải nằm trọn trong màn hình và tương đối đơn giản.

Đối với hình phức tạp hay nằm ngoài màn hình như tuyến thủy hệ, giao thông chằng chịt, lệnh này không tốt lắm.

 

;Ham tinh dien tich bang lenh bpoly

(defun tinhdtich( p / name)

(setq name (entlast))

(command “Bpoly” p “\”);

(if (null (equal name (entlast)))

(progn

(command “area” “O” “l”)

(command “_.erase” “l” “”)

(getvar “area”)

)

(PROGN

(alert “Khong khep”)

NIL

)

)

)

(defun C:DT1()

(SETQ P (GETPOINT ”
PICK”))

(IF P (TINHDTICH P))

)

(defun C:DT2( / old)

(setq old (getvar “osmode”))

(bpoly (getpoint ”
Pick”))

(setvar “osmode” old)

(command “_area” “o” “l”)

(entdel (entlast))

(rtos (getvar “area”) 2 1)

)

Chào bác tdvn,

Mình đang xài cad2004, tìm trong Help thì khong thấy có lệnh Bpoly mà chỉ thấy có lệnh Boundary thôi bác ạ. Không biết hai lệnh này có tương đương nhau không? Nhờ bác giải thích kỹ giùm cái dòng code (command “bpoly” p “\”). Ở đây cái tham số “\” dùng để làm gì vậy???

Cám ơn bác trước.

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

tdvn 53

tdvn 53

biết lệnh rotateThành viên 53137 bài viết
Đã đăng Tháng 3 15, 2009
Chào bác tdvn,

Mình đang xài cad2004, tìm trong Help thì khong thấy có lệnh Bpoly mà chỉ thấy có lệnh Boundary thôi bác ạ. Không biết hai lệnh này có tương đương nhau không? Nhờ bác giải thích kỹ giùm cái dòng code (command “bpoly” p “\”). Ở đây cái tham số “\” dùng để làm gì vậy???

Cám ơn bác trước.

Lệnh Bpoly trong cad2004 cũng có đấy. Trên dòng Command bạn đáng lệnh Bpoly sẽ hiện khung đối thoại Boundary.

Tham số “\” (có lẽ tương tự PAUSE) để chương trình dừng lại cho bạn xem đường bao nó chạy như thế nào, có đúng như mình muốn hay không vì đôi khi cad chạy cũng lung tung. Nếu đúng thì dùng kết quả diện tích trả về, còn không thì xem lại.

Xem thêm: Năm 2021 Diện Tích Bao Nhiêu Mét Vuông Thì Được Cấp Sổ Đỏ 2021 Là Bao Nhiêu?

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

ththang 5

ththang 5

biết vẽ lineThành viên 528 bài viết
Đã đăng Tháng 3 17, 2009

Chào các bạn!

Mình vẫn hay dùng lisp này để tính diện tích thấy cũng chuẩn. Chỉ yêu càu là hình kín, chỉ cần pick vào là sẽ ra diện tích ngay. Yêu cầu là đặt chiều cao font chữ mặc định STANDARD. Các bạn dùng thử xem như thế nào rồi cho mình nhận xét nhé.

 

(Defun C:DTI()

(Setvar “TEXTSTYLE” “STANDARD”)

(Setq What (GetString ”
Sdao(E)/Sdap(:undecided:: “))

(Setq Point (GetPoint ”
Point in the area: “))

(Setq TArea 0)

 

(While Point

(Command “BPOLY” Point “”)

(Command “AREA” “O” “L”)

(Command “ERASE” “LAST” “”)

(Setq TArea (+ TArea (/ (Getvar “Area”) 1)))

(Setq Point (GetPoint ”
Next point: “))

)

 

(If (= InsertPoint Nil)

(Setq InsertPoint (GetPoint ”
Insert Point: “))

)

 

(Cond ((= (Strcase What) “B”)

(Progn

(Setq TextPoint (List (- (Car InsertPoint) 40) (+ (Cadr InsertPoint) 50)))

(Command “TEXT” TextPoint “0” “SB:”)

(Command “TEXT” “R” (List (+ (Car TextPoint) 25) (Cadr TextPoint)) “0” (Strcat (Rtos TArea 2 3) “m2”))

)

)

((= (Strcase What) “E”)

(Progn

(Setq TextPoint (List (- (Car InsertPoint) 40) (+ (Cadr InsertPoint) 45)))

(Command “TEXT” TextPoint “0” “SE:”)

(Command “TEXT” “R” (List (+ (Car TextPoint) 25) (Cadr TextPoint)) “0” (Strcat (Rtos TArea 2 3) “m2”))

Xem thêm bài viết thuộc chuyên mục: Diện tích