Đến nội dung


Hình ảnh
* * - - - 2 Bình chọn

[Đã xong] Nhờ giúp Lisp tính diện tích và lập bảng


  • Please log in to reply
92 replies to this topic

#41 xuandao0708

xuandao0708

    biết lệnh scale

  • Members
  • PipPipPip
  • 140 Bài viết
Điểm đánh giá: 8 (bình thường)

Đã gửi 24 August 2009 - 11:18 AM

Thank bạn Thaistreets nhiều, lisp này đã chạy tốt rồi, đúng như ý mình.
  • 0

#42 truongthanh

truongthanh

    biết lệnh text

  • Members
  • PipPipPipPip
  • 275 Bài viết
Điểm đánh giá: 7 (bình thường)

Đã gửi 04 January 2010 - 11:48 PM

Tưởng mỗi mình thức đêm chứ. ^^
Mình đã sửa trực tiếp vào code trên theo như yêu cầu của bạn rồi đấy.

hix hix!sory bạn nhen!bạn có thể để lại cái Pline sau ko tính diện tích được ko vậy bạn!thanks!
Thanks!mình đã tự làm được rồi!
  • 0

#43 khaosat2009

khaosat2009

    biết lệnh offset

  • Members
  • PipPipPip
  • 171 Bài viết
Điểm đánh giá: 10 (tàm tạm)

Đã gửi 24 January 2010 - 09:52 PM

Nhờ các anh up lên cho líp tính diện tích hình sau khi đã hiệu chỉnh xong, Cảm ơn .
  • 0

#44 traichoi85

traichoi85

    biết vẽ circle

  • Members
  • PipPip
  • 35 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 25 January 2010 - 01:19 AM

chào mọi người. em có 1 trường hợp cũng giống như trên nhưng mà cái của em là các số diện tích đó nó không nhập trong file cad mà nó nhập trong file excel luôn. tự động nhập luôn. tức là thay vì khi mình kích vào đối tượng thì số diện tích hiện trong properties thì trường hợp của em là nó tự động nhập trong file excel luôn. em có gởi hình mình họa mong các anh có thể viết dùm em cái list được không à. và có thể tự động nhập khoảng lùi luôn. cảm ơn mấy anh trước
http://www.cadviet.c...es/2/help_1.jpg
  • 0

#45 legiang610

legiang610

    biết zoom

  • Members
  • Pip
  • 10 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 06 April 2010 - 10:50 AM

Của bạn đây. lisp sẽ tính diện tích thực theo tỷ lệ bản vẽ bạn nhập vào. đầu tiên bạn phải chọn vị trí đặt bảng thống kê diện tích trên bản vẽ rồi mới pick chọn các miền cần đo diện tích. pick tới đâu diện tích sẽ được thống kê vào bảng đến đó. Mình viết thêm cho bạn một ô tính tổng diện tích các miền đã đo (yêu cầu của bạn không thấy nêu vấn đề này), tuy nhiên bạn phải Enter để kết thúc lệnh (không nhấn Esc nhé) thì lisp mới vẽ được ô cuối cùng này.

(defun c:r()
(setvar "cmdecho" 0)
(setq lacol (getvar "CEColor"))
(setq ladin (getvar "dimzin"))
(setq laos (getvar "osmode"))
(if (not tl) (setq tl 1))
(if (not h) (setq h 1))
(setq tl1 (getreal (strcat "\nty le ban ve < 1/" (rtos tl 2 0) " >: 1/"))
caot1 (getreal (strcat "\nCao text < " (rtos h 2 0) " >: ")))
(if tl1 (setq tl tl1))
(if caot1 (setq h caot1))

(setq k 0
tdt 0)
(setq ss (ssadd))

(setvar "dimzin" 0)
(setvar "OSMODE" 0)
(setq PT (getpoint "\nChon diem xuat bang thong ke dien tich (mep trai):"))
(setq P1 (list (+ (car PT)(* 6 h)) (cadr PT))
P2 (list (+ (car PT)(* 22 h)) (cadr PT))
P3 (list (car PT) (- (cadr PT)(* 3 h)))
P4 (list (car P1) (cadr P3))
P5 (list (car P2) (cadr P3))
P6 (list (+ (car PT)(* 11 h)) (+ (cadr PT)(* 2 h)))
P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))
P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h)))
);setq
(command "pline" PT P2 P5 P3 "C"
"pline" P1 P4 ""
"text" "m" P6 (* 1.2 h) 0 "%%UB¶ng thèng kª diÖn tÝch"
"text" "m" P7 h 0 "STT"
"text" "m" P8 h 0 "DiÖn tÝch (m2)"
);command

(setq pt1 (getpoint "\n Chon mien tinh dien tich : "))
(while (/= pt1 nil)
(setq k (+ 1 k))
(command "TEXT" "m" pt1 (* 3 h) 0 (rtos k 2 0))
(setq PT (list (car P3) (cadr P3))
P1 (list (+ (car PT)(* 6 h)) (cadr PT))
P2 (list (+ (car PT)(* 22 h)) (cadr PT))
P3 (list (car PT) (- (cadr PT)(* 3 h)))
P4 (list (car P1) (cadr P3))
P5 (list (car P2) (cadr P3))
P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))
P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h)))
P9 (list (car PT) (- (cadr P3)(* 3 h)))
P10 (list (car P1) (cadr P9))
P11 (list (car P2) (cadr P9))
P12 (list (car P7) (- (cadr P3)(* 1.5 h)))
P13 (list (car P8) (cadr P12))
);setq
(command "CECOLOR" 4 "-boundary" pt1 "" )
(setvar "CECOLOR" lacol)
(setq et (entlast))
(ssadd et ss)
(command "area" "e" "last")
(setq et (entlast))
(ssadd et ss)
(setq dtcon (* (getvar "AREA") tl tl))
(setq tdt (+ dtcon tdt))
(command "erase" ss "")

(command "pline" PT P2 P5 P3 "C"
"pline" P1 P4 ""
"text" "m" P7 h 0 (rtos k 2 0)
"text" "m" P8 h 0 (rtos dtcon 2 2))

(setq pt1 (getpoint "\n chon mien tinh dien tich tiep theo hoac enter de ket thuc lenh..."))
);while
(setq ss nil)
(setvar "DIMZIN" ladin)
(command "pline" P3 P9 P11 P5 "C"
"pline" P10 P4 ""
"text" "m" P12 h 0 "Tæng"
"text" "m" P13 h 0 (rtos tdt 2 2)
);command
(setvar "OSMODE" laos)
(setvar "cmdecho" 1)
)

Em thấy lisp mày của bác rất hay rùi nhưng nó vẫn còn hai nhược điểm lớn khiến cho tác dung của nó bị giảm rất nhiều
- Nó vô hiệu vơi các đường cong như spl, arc, elip...
-khi đường bao thay đổi kết quả không tự thay đổi theo.
Nếu bác khắc phục được 2 điểm này thì lisp này thật tuyệt, hic em hay phải tính diện tích lắm mà thấy các lisp hiện tại chưa giả quyết được triệt để vấn đề.mong các cao thủ có ý kiến nhé :undecided:
  • 1

#46 dacvien2009

dacvien2009

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 06 April 2010 - 11:50 AM

Em thấy lisp mày của bác rất hay rùi nhưng nó vẫn còn hai nhược điểm lớn khiến cho tác dung của nó bị giảm rất nhiều
- Nó vô hiệu vơi các đường cong như spl, arc, elip...
-khi đường bao thay đổi kết quả không tự thay đổi theo.
Nếu bác khắc phục được 2 điểm này thì lisp này thật tuyệt, hic em hay phải tính diện tích lắm mà thấy các lisp hiện tại chưa giả quyết được triệt để vấn đề.mong các cao thủ có ý kiến nhé :blink:

:blink: Qua Lisp này mình xem cũng rất hay.
Nếu được áp dụng theo hàng ngang thì hay lắm, mà thống kê theo từng khu vực thì hay hơn nhiều. Xong một khu thì xuống một hàng, Tổng theo hàng ngang và cột .
:undecided: Rất được các anh giúp
  • 0

#47 phucx3

phucx3

    biết zoom

  • Members
  • Pip
  • 10 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 06 April 2010 - 12:18 PM

lệnh này hay đấy. cám ơn Bác!!!
  • 0

#48 langqueyeudau_ns

langqueyeudau_ns

    biết zoom

  • Members
  • Pip
  • 12 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 28 October 2010 - 09:15 PM

Của bạn đây. lisp sẽ tính diện tích thực theo tỷ lệ bản vẽ bạn nhập vào. đầu tiên bạn phải chọn vị trí đặt bảng thống kê diện tích trên bản vẽ rồi mới pick chọn các miền cần đo diện tích. pick tới đâu diện tích sẽ được thống kê vào bảng đến đó. Mình viết thêm cho bạn một ô tính tổng diện tích các miền đã đo (yêu cầu của bạn không thấy nêu vấn đề này), tuy nhiên bạn phải Enter để kết thúc lệnh (không nhấn Esc nhé) thì lisp mới vẽ được ô cuối cùng này.

(defun c:r()
(setvar "cmdecho" 0)
(setq lacol (getvar "CEColor"))
(setq ladin (getvar "dimzin"))
(setq laos (getvar "osmode"))
(if (not tl) (setq tl 1))
(if (not h) (setq h 1))
(setq tl1 (getreal (strcat "\nty le ban ve < 1/" (rtos tl 2 0) " >: 1/"))
caot1 (getreal (strcat "\nCao text < " (rtos h 2 0) " >: ")))
(if tl1 (setq tl tl1))
(if caot1 (setq h caot1))

(setq k 0
tdt 0)
(setq ss (ssadd))

(setvar "dimzin" 0)
(setvar "OSMODE" 0)
(setq PT (getpoint "\nChon diem xuat bang thong ke dien tich (mep trai):"))
(setq P1 (list (+ (car PT)(* 6 h)) (cadr PT))
P2 (list (+ (car PT)(* 22 h)) (cadr PT))
P3 (list (car PT) (- (cadr PT)(* 3 h)))
P4 (list (car P1) (cadr P3))
P5 (list (car P2) (cadr P3))
P6 (list (+ (car PT)(* 11 h)) (+ (cadr PT)(* 2 h)))
P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))
P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h)))
);setq
(command "pline" PT P2 P5 P3 "C"
"pline" P1 P4 ""
"text" "m" P6 (* 1.2 h) 0 "%%UB¶ng thèng kª diÖn tÝch"
"text" "m" P7 h 0 "STT"
"text" "m" P8 h 0 "DiÖn tÝch (m2)"
);command

(setq pt1 (getpoint "\n Chon mien tinh dien tich : "))
(while (/= pt1 nil)
(setq k (+ 1 k))
(command "TEXT" "m" pt1 (* 3 h) 0 (rtos k 2 0))
(setq PT (list (car P3) (cadr P3))
P1 (list (+ (car PT)(* 6 h)) (cadr PT))
P2 (list (+ (car PT)(* 22 h)) (cadr PT))
P3 (list (car PT) (- (cadr PT)(* 3 h)))
P4 (list (car P1) (cadr P3))
P5 (list (car P2) (cadr P3))
P7 (list (+ (car PT)(* 3 h)) (- (cadr PT)(* 1.5 h)))
P8 (list (+ (car PT)(* 14 h)) (- (cadr PT)(* 1.5 h)))
P9 (list (car PT) (- (cadr P3)(* 3 h)))
P10 (list (car P1) (cadr P9))
P11 (list (car P2) (cadr P9))
P12 (list (car P7) (- (cadr P3)(* 1.5 h)))
P13 (list (car P8) (cadr P12))
);setq
(command "CECOLOR" 4 "-boundary" pt1 "" )
(setvar "CECOLOR" lacol)
(setq et (entlast))
(ssadd et ss)
(command "area" "e" "last")
(setq et (entlast))
(ssadd et ss)
(setq dtcon (* (getvar "AREA") tl tl))
(setq tdt (+ dtcon tdt))
(command "erase" ss "")

(command "pline" PT P2 P5 P3 "C"
"pline" P1 P4 ""
"text" "m" P7 h 0 (rtos k 2 0)
"text" "m" P8 h 0 (rtos dtcon 2 2))

(setq pt1 (getpoint "\n chon mien tinh dien tich tiep theo hoac enter de ket thuc lenh..."))
);while
(setq ss nil)
(setvar "DIMZIN" ladin)
(command "pline" P3 P9 P11 P5 "C"
"pline" P10 P4 ""
"text" "m" P12 h 0 "Tæng"
"text" "m" P13 h 0 (rtos tdt 2 2)
);command
(setvar "OSMODE" laos)
(setvar "cmdecho" 1)
)

bạn quá giỏi,cảm ơn bạn nhiều nhé.ji
  • 0

#49 ldky2k

ldky2k

    biết vẽ line

  • Members
  • PipPip
  • 23 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 28 October 2010 - 09:59 PM

Chào bạn thaistreetz, chương trình bạn rất hay như có 1 điều là tính diện tích của hình elip thì ko được. Cám ơn bạn.
  • 0

#50 kien089

kien089

    biết zoom

  • Members
  • Pip
  • 18 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 27 December 2010 - 07:23 PM

bạn ơi nếu lips có phần tính tổng diện tích thì tốt quá
hơn nữa cách pick vào vùng diện tích kín đó cũng bất tiện với các đa giác chưa bo kín nếu cách tính đó them 1 lựa chọn theo đường bo ngoài thì tuyệt!!!
thak bạn
  • 0

#51 thanhhoa.36

thanhhoa.36

    biết vẽ circle

  • Members
  • PipPip
  • 35 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 28 December 2010 - 11:33 PM

Chào các bác
Em thấy Lisp của bác Thái rất là tuyệt vời, nó giúp rất hữu ích cho anh em khi thống kê diện tích
Em có một trường hợp như sau rất mong được các bác giúp đỡ
em có rất nhiều thửa đất, có một đường Plyline cắt ngang qua một số thửa đất như hình vẽ
Hình đã gửi
rất mong được các bác giúp đỡ em làm sao có thể đánh được :
- ĐÁNH SỐ THỬA
- TÍNH DIỆN TÍCH TRONG VÀO NGOÀI ĐƯỜNG GIỚI HẠN
- XUẤT SANG EXCELL bảng thống kê
Rất mong được các bác trên diện đàn có thể phát triển từ Lisp của bác Thái và bác Thái có thể giúp cho trong khâu giải bài toán này để anh em trắc địa bọn em đỡ vất vả, món Lisp này em chẳng biết gì

Cho em được cảm ơn các bác trước vậy

Đây là file em gửi kèm

http://www.cadviet.c...les/3/vd_10.rar
  • 0

#52 hdg2318

hdg2318

    biết lệnh mirror

  • Members
  • PipPipPip
  • 158 Bài viết
Điểm đánh giá: 31 (tàm tạm)

Đã gửi 30 December 2010 - 12:50 PM

quá hay, nhưng bác Thái nên để tiếng việt không dấu sẽ tốt hơn, vì có phải ai cũng dùng hệ Font VN đâu. Nữa là : đơn vị bác ghi là m2, nhưng sao kết quả vẫn là mm2 hì hì.
Có đôi lời nhận xét. dù gì thì có được lisp này của bác, cũng nhàn nhã hơn rất nhiều rồi. Thanks!!!!
  • 0

Có 2 cách để nhìn đời:
1 là : coi như chẳng có gì là huyền diệu
2 là : coi như mọi điều đều huyền diệu


Click here


#53 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 31 December 2010 - 01:05 PM

Chào bác Thái em có 1 góp ý nho nhỏ, giả sử em pick 2 lần của 1 thửa thì nó ghi giá trị lần 1 và giá trị lần 2 thì báo đã tính rồi.
  • 1
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#54 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 31 December 2010 - 09:48 PM

Cuối năm mai lo chuyện cơm-áo-gạo-tiền, cũng muốn sửa giúp anh em lắm nhưng mình bận quá không còn thời gian cho lisp. mọi người ai có thể sửa được lisp này thì sửa giúp mình với. thanks
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#55 thanhlaivung2000

thanhlaivung2000

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 04 January 2011 - 09:47 PM

các pác chỉ giúp em cách sủ dụng lisp này với, e down về mà không bít cách xài.
  • 0

#56 thanhlaivung2000

thanhlaivung2000

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 04 January 2011 - 09:53 PM

sao khi e down r.lisp về và load để sử dụng thì bị sai font hay sao ấy, mong pác thaistreez hướng dẫn một cách cụ thể hơn để e mở mang tầm mắt ah.
  • 0

#57 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 992 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 05 January 2011 - 09:29 AM

Cá mơn Thaistreetz và Bác giabach nhiều, vì mình là dân trác địa nên tỷ lẽ bạn vẽ của mình là 1/500 tương đưong với tỷ lệ thực của bản vẽ là 1/1, nếu mình vẽ ở tỷ lệ 1/200 tương dương với tỷ lệ thực của bản vẽ là 2/5. Sau đây là file mẫu của mình theo 4 tỷ lệ khác nhau nhưng cùng kích thước hình học.http://www.cadviet.com/upfiles/2/mau_6_1.dwg

Có gì mình nói không phải mong bạn thứ lỗi.

mình là dân trác địa nên tỷ lẽ bạn vẽ của mình là 1/500 tương đưong với tỷ lệ thực của bản vẽ là 1/1, nếu mình vẽ ở tỷ lệ 1/200 tương dương với tỷ lệ thực của bản vẽ là 2/5

.
Bạn là dân trắc địa mà giải thích tỷ lệ như này là không ổn. Đến mình là dân trắc địa cũng chả hiểu nỗi nữa là bác Thaistreetz. Bạn giải thích lại cho ổn để mọi người hiểu nha.
  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#58 hdg2318

hdg2318

    biết lệnh mirror

  • Members
  • PipPipPip
  • 158 Bài viết
Điểm đánh giá: 31 (tàm tạm)

Đã gửi 10 March 2011 - 09:56 PM

Chào bạn thaistreetz, chương trình bạn rất hay như có 1 điều là tính diện tích của hình elip thì ko được. Cám ơn bạn.


thực ra vẫn tính được diện tích với các hình là elíp, hay các đường spline kín.
bạn gõ lệnh BO, trong hộp thoại hiện ra, mục object type , bạn chọn là REGION -> ok !
  • 0

Có 2 cách để nhìn đời:
1 là : coi như chẳng có gì là huyền diệu
2 là : coi như mọi điều đều huyền diệu


Click here


#59 hailuavnn

hailuavnn

    biết vẽ ellipse

  • Members
  • PipPip
  • 57 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 10 March 2011 - 11:03 PM

Sao mình tải hoài không được vậy ta, bạn nào có link cuối không cho mình với
cám ơn thaistreetz nhiều nhé
  • 0

#60 hdg2318

hdg2318

    biết lệnh mirror

  • Members
  • PipPipPip
  • 158 Bài viết
Điểm đánh giá: 31 (tàm tạm)

Đã gửi 14 March 2011 - 10:19 PM

Sao mình tải hoài không được vậy ta, bạn nào có link cuối không cho mình với
cám ơn thaistreetz nhiều nhé

bạn có thể copy trực tiếp code ở các bài trên, rồi paste vào trong file text(vis duj laf abc.txt), sau đó đổi tên là xong(thành abc.lsp chẳng hạn)
  • 0

Có 2 cách để nhìn đời:
1 là : coi như chẳng có gì là huyền diệu
2 là : coi như mọi điều đều huyền diệu


Click here