Đến nội dung


Hình ảnh
- - - - -

nhờ giúp list tính diện tích trong cad và tự động nhập trong excel


  • Please log in to reply
18 replies to this topic

#1 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 - 09:57 AM

chào mọi người. em thay có 1 trường hợp là em muốn kích vào đối tượng trong file cad thì cái diện tích nó nhập trong file excel luôn. tự động nhập luôn. tức là 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

#2 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 25 January 2010 - 01:46 PM

chào mọi người. em thay có 1 trường hợp là em muốn kích vào đối tượng trong file cad thì cái diện tích nó nhập trong file excel luôn. tự động nhập luôn. tức là 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

Bạn chạy thử Lisp xuất ra file CSV
sau đó dùng Excel mở file này, save as qua file *.xls

Cách sử dụng : tên lệnh 2CSV
lần luơt chọn :
- Text để lấy số lô
- đối tuơng để lấy Diện tích
- đối tuơng để lấy Khoảng lùi

lặp lại các buớc trên, nhấn Enter để kết thúc quá trình chọn.
- Chỉ ra ten file -> kết thúc.

(defun c:2Csv (/ chdai dtich ent1 ent2 ent3 lst solo tmp)
(vl-load-com)
(while (and
(setq ent1 (car (entsel "\nchon Text de lay So lo :")))
(= (cdr (assoc 0 (entget ent1))) "TEXT")
(setq solo (vlax-get(vlax-Ename->Vla-Object ent1)'TextString))
(setq ent2 (car (entsel "\nchon doi tuong de lay Dien tich :"))
ent2 (vlax-Ename->Vla-Object ent2))
(and (vlax-property-available-p ent2 'area)
(setq dtich (vlax-get ent2 'Area) ) )
(setq ent3 (car (entsel "\nchon doi tuong de lay Khoang lui :"))
ent3 (vlax-Ename->Vla-Object ent3))
(and (vlax-property-available-p ent3 'Length)
(setq chdai (vlax-get ent3 'Length) ) ) )
(princ "\n")
(princ (setq tmp (strcat solo "," (rtos dtich) "," (rtos chdai))))
(setq lst (append lst (list tmp))) )
(if (setq tmp (getfiled "Ten file " (getvar "dwgprefix") "csv" 1))
(progn
(setq tmp (open tmp "a"))
(write-line "So lo,Dien tich,Khoang lui" tmp)
(foreach txt lst
(write-line txt tmp) )
(close tmp)))
(princ))

  • 5

#3 trinhvqh

trinhvqh

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 408 Bài viết
Điểm đánh giá: 222 (khá)

Đã gửi 25 January 2010 - 02:24 PM

Một lần nữa phải công nhân gia_bach viết Lisp quá ghê
Một bài toán cụ thể và cách giải quyết cũng cụ thể

Tuy nhiên tại Autolisp giới hạn nên hiệu quả lisp cũng giới hạn
Giá như với đầu óc này, có một công cụ mạnh hơn
thì chắc chắc rằng gia_bach sẽ đóng góp được nhiều cho cộng đồng!
  • 0

#4 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 - 02:56 PM

cảm ơn anh gia bach và anh trinhvqh. để em đã thử rồi. cái phần diện tích thì rất ổn nhưng mà cái phần khoảng lùi là em vận không hiểu. em kích vào đuối tượng ( có phải vẫn là đối tượng kích vào diện tích không) thì em thầy trong file excel nó hiện ra cái khoảng lùi rất lớn. như trong file em làm thì khoâng lùi trong cad là 5.9m hay là 1.02 nhưng mà trong file excel là 15.4m. em không hiểu được số 15.4 ở đâu. em nghĩ nếu làm khoảng lùi thì phải kích 2 đối tượng (1 là đường. 2 là công trình) trong file list anh viết dùm em thì chỉ kích vào đối tượng. em cũng không biết là đối tượng nào. mong anh giải tích dùm em. cảm ơn anh. và đây là hình của em
http://www.cadviet.c.../khoang_lui.jpg
  • 0

#5 trinhvqh

trinhvqh

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 408 Bài viết
Điểm đánh giá: 222 (khá)

Đã gửi 25 January 2010 - 03:55 PM

cảm ơn anh gia bach và anh trinhvqh. để em đã thử rồi. cái phần diện tích thì rất ổn nhưng mà cái phần khoảng lùi là em vận không hiểu. em kích vào đuối tượng ( có phải vẫn là đối tượng kích vào diện tích không) thì em thầy trong file excel nó hiện ra cái khoảng lùi rất lớn. như trong file em làm thì khoâng lùi trong cad là 5.9m hay là 1.02 nhưng mà trong file excel là 15.4m. em không hiểu được số 15.4 ở đâu. em nghĩ nếu làm khoảng lùi thì phải kích 2 đối tượng (1 là đường. 2 là công trình) trong file list anh viết dùm em thì chỉ kích vào đối tượng. em cũng không biết là đối tượng nào. mong anh giải tích dùm em. cảm ơn anh. và đây là hình của em
http://www.cadviet.c.../khoang_lui.jpg


Em "kích thích" lộn rồi
Với khoảng lùi, em nên chọn Line
Nếu kích đối tượng Lô đất thì chắc nó hiểu là Chu vi lô đất
....
Kích lại đi, bảo đảm sẽ thích
Và nhớ là cảm ơn gia_bach nhiều vào nhé!
:undecided:
  • 0

#6 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 25 January 2010 - 04:18 PM

Em "kích thích" lộn rồi
Với khoảng lùi, em nên chọn Line
Nếu kích đối tượng Lô đất thì chắc nó hiểu là Chu vi lô đất
....
Kích lại đi, bảo đảm sẽ thích
Và nhớ là cảm ơn gia_bach nhiều vào nhé!
:undecided:

Hôm nay bác trinhvqh vui tính quá ! :undecided:
BTW, thanks you very nhiều :undecided:

cảm ơn anh gia bach và anh trinhvqh. để em đã thử rồi. cái phần diện tích thì rất ổn nhưng mà cái phần khoảng lùi là em vận không hiểu. em kích vào đuối tượng ( có phải vẫn là đối tượng kích vào diện tích không) thì em thầy trong file excel nó hiện ra cái khoảng lùi rất lớn. như trong file em làm thì khoâng lùi trong cad là 5.9m hay là 1.02 nhưng mà trong file excel là 15.4m. em không hiểu được số 15.4 ở đâu. em nghĩ nếu làm khoảng lùi thì phải kích 2 đối tượng (1 là đường. 2 là công trình) trong file list anh viết dùm em thì chỉ kích vào đối tượng. em cũng không biết là đối tượng nào. mong anh giải tích dùm em. cảm ơn anh. và đây là hình của em
http://www.cadviet.c.../khoang_lui.jpg

Click vào đối tuợng Text để lấy Số lô
Click vào đối tuợng lô đất để lấy diện tích.
Click vào đối tuợng Text để lấy Khoảng lùi.

Ngay từ đầu, nếu bạn đưa file CAD lên thì mọi chuyện đơn giản hơn không ?
(defun c:2Csv (/ chdai dtich ent1 ent2 ent3 lst solo tmp)
(vl-load-com)
(while (and
(setq ent1 (car (entsel "\nchon Text de lay So lo :")))
(= (cdr (assoc 0 (entget ent1))) "TEXT")
(setq solo (vlax-get(vlax-Ename->Vla-Object ent1)'TextString))
(setq ent2 (car (entsel "\nchon doi tuong (lo dat) de lay Dien tich :"))
ent2 (vlax-Ename->Vla-Object ent2))
(and (vlax-property-available-p ent2 'area)
(setq dtich (vlax-get ent2 'Area) ) )
(setq ent3 (car (entsel "\nchon Text de lay Khoang lui :")))
(= (cdr (assoc 0 (entget ent1))) "TEXT")
(setq chdai (vlax-get(vlax-Ename->Vla-Object ent3)'TextString) ) )
(princ "\n")
(princ (setq tmp (strcat solo "," (rtos dtich) "," (rtos chdai))))
(setq lst (append lst (list tmp))) )
(if (setq tmp (getfiled "Ten file " (getvar "dwgprefix") "csv" 1))
(progn
(setq tmp (open tmp "a"))
(write-line "So lo,Dien tich,Khoang lui" tmp)
(foreach txt lst
(write-line txt tmp) )
(close tmp)))
(princ))

  • 0

#7 trinhvqh

trinhvqh

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 408 Bài viết
Điểm đánh giá: 222 (khá)

Đã gửi 25 January 2010 - 04:26 PM

Hôm nay bác trinhvqh vui tính quá ! :undecided:
BTW, thanks you very nhiều :undecided:

Click vào đối tuợng Text để lấy Số lô
Click vào đối tuợng lô đất để lấy diện tích.
Click vào đối tuợng Text để lấy Khoảng lùi.

Ngay từ đầu, nếu bạn đưa file CAD lên thì mọi chuyện đơn giản hơn không ?

(defun c:2Csv (/ chdai dtich ent1 ent2 ent3 lst solo tmp)
(vl-load-com)
(while (and
(setq ent1 (car (entsel "\nchon Text de lay So lo :")))
(= (cdr (assoc 0 (entget ent1))) "TEXT")
(setq solo (vlax-get(vlax-Ename->Vla-Object ent1)'TextString))
(setq ent2 (car (entsel "\nchon doi tuong (lo dat) de lay Dien tich :"))
ent2 (vlax-Ename->Vla-Object ent2))
(and (vlax-property-available-p ent2 'area)
(setq dtich (vlax-get ent2 'Area) ) )
(setq ent3 (car (entsel "\nchon Text de lay Khoang lui :")))
(= (cdr (assoc 0 (entget ent1))) "TEXT")
(setq chdai (vlax-get(vlax-Ename->Vla-Object ent3)'TextString) ) )
(princ "\n")
(princ (setq tmp (strcat solo "," (rtos dtich) "," (rtos chdai))))
(setq lst (append lst (list tmp))) )
(if (setq tmp (getfiled "Ten file " (getvar "dwgprefix") "csv" 1))
(progn
(setq tmp (open tmp "a"))
(write-line "So lo,Dien tich,Khoang lui" tmp)
(foreach txt lst
(write-line txt tmp) )
(close tmp)))
(princ))


Có lẽ vẫn chưa đúng yêu cầu "em nó" rồi
Khoảng lùi: Click vào Dimension (nhìn hình đoán thế)
  • 0

#8 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 - 11:20 PM

ý mấy anh em hiểu. và em cũng hiểu cái số khoảng lùi lun. cho em hỏi. nếu không có khoảng lùi thì mình bâm vào đâu để excel nó hiểu là 0 vậy
  • 0

#9 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 26 January 2010 - 11:31 AM

Chào cả nhà.
Với tư cách là nguời có “quyền lợi và nghĩa vụ liên quan”, (dựa trên các phát biểu của các bác trong phạm vi CadViet) tui xin có vài lời cùng các bác :

To trinhvqh : có thể hơi quá khi nói bạn là nguời cầu toàn nghĩa là mọi thứ phải hoàn hảo nhất, hiệu quả nhất.
- Lisp giải quyết được vấn đề của người yêu cầu nhưng hiệu quả chưa Pro, Còn nhiều vấn đề phải hoàn thiện
- giải quyết vấn đề không rốt ráo

Thực tế ai ai cũng mong muốn đuợc như vậy, nhưng đó chỉ là uớc mơ thôi, thực tế thì như bạn đã biết ....

Bạn là 1 chuyên gia về ACA, do đó mọi thứ đều đuợc mang về hệ qui chiếu ACA :
- ACA có làm (giải quyết) đuợc không ?
- giải pháp mới có hay hơn ACA không ?

Không may là hầu hết các giải pháp bằng AutoLisp đều thiếu thuyết phục hay chưa thuyết phục đuợc bạn !

To Tue_NV : bạn là nguời có nhiều đam mê, nhiệt huyết với AutoLisp :
- AutoLisp thật tuyệt vời...
- khám phá hoài không hết
- tìm hiểu tới già cũng không hết được

Truớc 1 vấn đề, bạn trăn trở làm thế nào giải quyết đuợc bằng AutoLisp ? (cũng đúng thôi, vì vấn đề thuờng đặt ở mục AutoLisp) - I'm too !

Để giải quyết 1 bài toán, mỗi nguời tự luợng vào khả năng của mình để tự tìm ra giải pháp tốt nhất cho riêng mình. Không có 1 giải pháp chung cho tất cả mọi nguời.
Ai có súng dùng súng, ai có dao dùng dao, …
(ai có AKA dùng AKA, ai có Ô-tô dùng Ô-tô, ...)
hề hề (Copyright : phamthanhbinh)
Tui biết là AKA “bắn” rất tốt, nhưng ở nuớc tui chính phủ không cho dân dùng súng.
Tui biết là Ô-tô “chạy” thật tuyệt vời, nhưng tui chưa có bằng lái

Chúc mọi nguời vui vẻ và nhiệt tình đóng góp cho CadViet ngày càng phát triển hơn. :undecided:
  • 4

#10 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 28 January 2010 - 08:51 PM

sao em chọn Text để lấy khoảng lùi thì nó báo như vậy:
chon Text de lay Khoang lui :
; error: bad argument type: numberp: "2"

Nhờ Bác Gia Bach sửa lại 1 chút được ko ạ:
- Thứ nhất:lấy diện tích, nếu mình ko chọn đối tượng thì mình có thể ấn Enter để pick vào vùng kín để lấy diện tích được ko (cái này dùng khi lô đất của mình được vẽ bằng LINE)?
- Thứ hai:chỗ khoảng lùi mình có thể chọn TEXT hoặc DIMENSION được ko?
- Thứ ba:Gặp trường hợp lô đất nằm ngay ngã tư có đến 2 khoảng lùi thì mình có thể chọn nhiều được ko?và có trường hợp là lô đất ko có khoảng lùi nữa, thì mình cho bằng 0.
Thanks bác Gia bach đã viết nên 1 cái LISP tuyệt vời như thế!
  • 0

#11 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 30 January 2010 - 10:43 PM

nhờ các bạn giúp dùm mình với!thanks!
  • 0

#12 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1436 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 01 February 2010 - 10:23 AM

sao em chọn Text để lấy khoảng lùi thì nó báo như vậy:
chon Text de lay Khoang lui :
; error: bad argument type: numberp: "2"

Nhờ Bác Gia Bach sửa lại 1 chút được ko ạ:
- Thứ nhất:lấy diện tích, nếu mình ko chọn đối tượng thì mình có thể ấn Enter để pick vào vùng kín để lấy diện tích được ko (cái này dùng khi lô đất của mình được vẽ bằng LINE)?
- Thứ hai:chỗ khoảng lùi mình có thể chọn TEXT hoặc DIMENSION được ko?
- Thứ ba:Gặp trường hợp lô đất nằm ngay ngã tư có đến 2 khoảng lùi thì mình có thể chọn nhiều được ko?và có trường hợp là lô đất ko có khoảng lùi nữa, thì mình cho bằng 0.
Thanks bác Gia bach đã viết nên 1 cái LISP tuyệt vời như thế!

Bạn thử LISP sau :
(defun c:2Csv (/ chdai dtich ent1 ent2 ent3 lst solo tmp ent21 enttype len pt)
(vl-load-com)
(while (setq ent1 (car (entsel "\nchon Text de lay So lo :")))
(and
(= (cdr (assoc 0 (entget ent1))) "TEXT")
(setq solo (vlax-get(vlax-Ename->Vla-Object ent1)'TextString))
(or
(and
(setq ent2 (car (entsel "\nchon doi tuong (lo dat) de lay Dien tich :")))
(setq ent2 (vlax-Ename->Vla-Object ent2))
(vlax-property-available-p ent2 'area)
(setq dtich (vlax-get ent2 'Area) ) )
(and
(setq pt (getpoint "\nPick diem (lo dat) de lay Dien tich :"))
(vl-cmdf "-bhatch" "Advanced" "Island" "No" "Nearest" "" pt "")
(setq ent2 (entlast))
(setq ent21 (vlax-Ename->Vla-Object ent2))
(vlax-property-available-p ent21 'area)
(setq dtich (vlax-get ent21 'Area) )
(entdel ent2)) )
(setq chdai "")
(while (setq ent3 (car (entsel "\nchon doi tuong de lay Khoang lui :")))
(setq enttype (cdr (assoc 0 (entget ent3))))
(cond
((eq enttype "TEXT") (setq len (vla-get-TextString (vlax-ename->vla-object ent3))) )
((eq enttype "DIMENSION") (setq len (rtos(vla-get-Measurement (vlax-ename->vla-object ent3)))) )
(T (setq len (rtos (vlax-curve-getDistAtParam ent3 (vlax-curve-getEndParam ent3)))) ) )
(setq chdai (strcat chdai "," len)) )

(princ "\n")
(princ (setq tmp (strcat solo "," (rtos dtich) chdai)))
(setq lst (append lst (list tmp))) ) )
(if (setq tmp (getfiled "Ten file " (getvar "dwgprefix") "csv" 1))
(progn
(setq tmp (open tmp "a"))
(write-line "So lo,Dien tich,Khoang lui" tmp)
(foreach txt lst
(write-line txt tmp) )
(close tmp)))
(princ))

  • 1

#13 lamcoi16

lamcoi16

    Chưa sử dụng CAD

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

Đã gửi 09 April 2010 - 03:07 PM

Bạn chạy thử Lisp xuất ra file CSV
sau đó dùng Excel mở file này, save as qua file *.xls

Cách sử dụng : tên lệnh 2CSV
lần luơt chọn :
- Text để lấy số lô
- đối tuơng để lấy Diện tích
- đối tuơng để lấy Khoảng lùi

lặp lại các buớc trên, nhấn Enter để kết thúc quá trình chọn.
- Chỉ ra ten file -> kết thúc.

(defun c:2Csv (/ chdai dtich ent1 ent2 ent3 lst solo tmp)
(vl-load-com)
(while (and
(setq ent1 (car (entsel "\nchon Text de lay So lo :")))
(= (cdr (assoc 0 (entget ent1))) "TEXT")
(setq solo (vlax-get(vlax-Ename->Vla-Object ent1)'TextString))
(setq ent2 (car (entsel "\nchon doi tuong de lay Dien tich :"))
ent2 (vlax-Ename->Vla-Object ent2))
(and (vlax-property-available-p ent2 'area)
(setq dtich (vlax-get ent2 'Area) ) )
(setq ent3 (car (entsel "\nchon doi tuong de lay Khoang lui :"))
ent3 (vlax-Ename->Vla-Object ent3))
(and (vlax-property-available-p ent3 'Length)
(setq chdai (vlax-get ent3 'Length) ) ) )
(princ "\n")
(princ (setq tmp (strcat solo "," (rtos dtich) "," (rtos chdai))))
(setq lst (append lst (list tmp))) )
(if (setq tmp (getfiled "Ten file " (getvar "dwgprefix") "csv" 1))
(progn
(setq tmp (open tmp "a"))
(write-line "So lo,Dien tich,Khoang lui" tmp)
(foreach txt lst
(write-line txt tmp) )
(close tmp)))
(princ))

anh ƠI ANH GIÚP EM CÁI NÀY ĐƯỢC KHÔNG.EM CÂN TINH DIỆN TÍCH NHƯ TRONG BẢN VẼ http://www.cadviet.c...v_kenh_my_3.dwg EM ĐÃ ĐỌC MỘT SỐ BÀI VIẾT RỒI MÀ KHÓ HIỂU QUÁ .
  • 0

#14 ledanh20275

ledanh20275

    Chưa sử dụng CAD

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

Đã gửi 28 March 2012 - 09:46 AM

Bạn chạy thử Lisp xuất ra file CSV
sau đó dùng Excel mở file này, save as qua file *.xls

Cách sử dụng : tên lệnh 2CSV
lần luơt chọn :
- Text để lấy số lô
- đối tuơng để lấy Diện tích
- đối tuơng để lấy Khoảng lùi

lặp lại các buớc trên, nhấn Enter để kết thúc quá trình chọn.
- Chỉ ra ten file -> kết thúc.

(defun c:2Csv (/ chdai dtich ent1 ent2 ent3 lst solo tmp)  (vl-load-com)    (while (and       (setq ent1 (car (entsel "\nchon Text de lay So lo :")))       (= (cdr (assoc 0 (entget ent1))) "TEXT")       (setq solo (vlax-get(vlax-Ename->Vla-Object ent1)'TextString))              (setq ent2 (car (entsel "\nchon doi tuong de lay Dien tich :"))	     ent2 (vlax-Ename->Vla-Object ent2))       (and (vlax-property-available-p ent2 'area)         (setq dtich (vlax-get ent2 'Area) )  )              (setq ent3 (car (entsel "\nchon doi tuong de lay Khoang lui :"))	     ent3 (vlax-Ename->Vla-Object ent3))       (and (vlax-property-available-p ent3 'Length)         (setq chdai (vlax-get ent3 'Length) )  )  )    (princ "\n")   	(princ (setq tmp (strcat solo "," (rtos dtich) "," (rtos chdai))))    (setq lst (append lst (list tmp)))  )    (if (setq tmp (getfiled "Ten file " (getvar "dwgprefix") "csv" 1))    (progn      (setq tmp (open tmp "a"))      (write-line "So lo,Dien tich,Khoang lui" tmp)            (foreach txt lst	(write-line txt tmp)   )      (close tmp)))  (princ))

bác gia_bach cho em hỏi với.tại sao em dùng ap -> load 2csv.lish-> gõ lệch 2csv / enter:chọn text để lấy số lô :kích chuột trái vào dt text->chọn đt để lấy diện tích: kích chuột trái vào vùng cần tính diện tích thì trên thanh comand trở về trạng thái bình thường.help me!
  • 0

#15 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 28 March 2012 - 09:54 AM

bác gia_bach cho em hỏi với.tại sao em dùng ap -> load 2csv.lish-> gõ lệch 2csv / enter:chọn text để lấy số lô :kích chuột trái vào dt text->chọn đt để lấy diện tích: kích chuột trái vào vùng cần tính diện tích thì trên thanh comand trở về trạng thái bình thường.help me!

chọn đt để lấy diện tích: kích chuột trái vào vùng cần tính diện tích
Bạn sai ở cái này. Bạn phải pick vào chính đối tượng, chứ không phải pick 1 điểm bên trong đối tượng.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#16 ledanh20275

ledanh20275

    Chưa sử dụng CAD

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

Đã gửi 28 March 2012 - 01:35 PM

cảm ơn ĐVHà! nhưng mà nếu tính diện tích của các lớp (Các loại đất trong 1 trắc ngang) thì không làm được.chẳng hạn tớ kèm file dưới nhờ bạn chỉ dùm.
  • 0

#17 ledanh20275

ledanh20275

    Chưa sử dụng CAD

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

Đã gửi 28 March 2012 - 01:35 PM

http://www.cadviet.c.../66619_vidu.dwg
  • 0

#18 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 28 March 2012 - 02:13 PM

cảm ơn ĐVHà! nhưng mà nếu tính diện tích của các lớp (Các loại đất trong 1 trắc ngang) thì không làm được.chẳng hạn tớ kèm file dưới nhờ bạn chỉ dùm.

1). Mỗi lisp có mỗi chức năng khác nhau. Không có lisp vạn năng. Muốn xem nó làm được gì thì trở lại xem từ y/c của chủ topic.
2). Tôi là người ngoại đạo về chuyên môn mà bạn y/c nên không giúp được, mong thông cảm.
3). Đọc bản vẽ thì không tìm được y/c rõ ràng từ bạn.
Hy vọng có người đúng chuyên ngành giúp bạn!
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#19 chippy

chippy

    Chưa sử dụng CAD

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

Đã gửi 05 December 2013 - 03:57 PM

Bạn chạy thử Lisp xuất ra file CSV
sau đó dùng Excel mở file này, save as qua file *.xls

Cách sử dụng : tên lệnh 2CSV
lần luơt chọn :
- Text để lấy số lô
- đối tuơng để lấy Diện tích
- đối tuơng để lấy Khoảng lùi

lặp lại các buớc trên, nhấn Enter để kết thúc quá trình chọn.
- Chỉ ra ten file -> kết thúc.
 

(defun c:2Csv (/ chdai dtich ent1 ent2 ent3 lst solo tmp)  (vl-load-com)    (while (and	   (setq ent1 (car (entsel "\nchon Text de lay So lo :")))	   (= (cdr (assoc 0 (entget ent1))) "TEXT")	   (setq solo (vlax-get(vlax-Ename->Vla-Object ent1)'TextString))	   	   (setq ent2 (car (entsel "\nchon doi tuong de lay Dien tich :"))		 ent2 (vlax-Ename->Vla-Object ent2))	   (and (vlax-property-available-p ent2 'area)	     (setq dtich (vlax-get ent2 'Area) )  )	   	   (setq ent3 (car (entsel "\nchon doi tuong de lay Khoang lui :"))		 ent3 (vlax-Ename->Vla-Object ent3))	   (and (vlax-property-available-p ent3 'Length)	     (setq chdai (vlax-get ent3 'Length) )  )  )    (princ "\n")       (princ (setq tmp (strcat solo "," (rtos dtich) "," (rtos chdai))))    (setq lst (append lst (list tmp)))  )    (if (setq tmp (getfiled "Ten file " (getvar "dwgprefix") "csv" 1))    (progn      (setq tmp (open tmp "a"))      (write-line "So lo,Dien tich,Khoang lui" tmp)            (foreach txt lst	(write-line txt tmp)   )      (close tmp)))  (princ))

Kính chào các anh trong ban quản trị diễn đàn cadviệt.com em mới tham gia diễn đàn và đọc các bài viết mọi người em thấy rất hay và bỗ ích. hiện nay trong công việc em đang làm gặp rất nhiều khó khăn và tốn thời gian xin các anh viết giúp em một cái lisp tự động tính diện tích các hình trong cad sau đó xuất sang excell. nói thì rất khó nên em đã diễn tả trong file đính kèm. trân thành cảm ơn các anh trong ban quản trị và mọi người trong dien đàn.http://www.cadviet.c...le_dinh_kem.rar


  • 0