Chuyển đến nội dung
Diễn đàn CADViet
npkh1981

chuyển số liệu text từ cad sang excell

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

Bạn nói rõ hơn được không?

Ý mình là khi chọn nhiều text trong 1 bản vẽ autocad thì khi xuất sang excell nó gom lại thành 1 đối tượng trong 1 ô cell nhưng mình cần là khi chọn nhiều text thì khi xuất sang excell nó tự động tách riêng mỗi text vào 1 ô

Bạn có thể giúp mình chứ

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
Ý mình là khi chọn nhiều text trong 1 bản vẽ autocad thì khi xuất sang excell nó gom lại thành 1 đối tượng trong 1 ô cell nhưng mình cần là khi chọn nhiều text thì khi xuất sang excell nó tự động tách riêng mỗi text vào 1 ô

Bạn có thể giúp mình chứ

Không hiểu bạn đã thử dùng chương trình tại đây chưa: http://www.cadviet.com/forum/chuyen-so-lie...xcel-t2959.html

 

Chương trình đó dùng để làm điều bạn vừa yêu cầu mà!

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 cho em hỏi có thể chuyển dữ liệu từ Cad sang Excel theo dạng này không ?

 

http://www.cadviet.com/upfiles/3/new_folder.rar

 

Em nhiều khi phải làm thống kê diện tích nhưng toàn phải nhập bằng tay trên Excel, lâu quá là lâu, Nhiều khi lên tới hàng vài trăm thửa đất. Quá trình này rất mất nhiều thời gian.

Rất mong các bác trên diễn đàn giúp đỡ để cho anh em Trắc Địa đỡ vất vả.

Xin chân thành cảm ơn !

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 cho em hỏi có thể chuyển dữ liệu từ Cad sang Excel theo dạng này không ?

 

http://www.cadviet.com/upfiles/3/new_folder.rar

 

Em nhiều khi phải làm thống kê diện tích nhưng toàn phải nhập bằng tay trên Excel, lâu quá là lâu, Nhiều khi lên tới hàng vài trăm thửa đất. Quá trình này rất mất nhiều thời gian.

Rất mong các bác trên diễn đàn giúp đỡ để cho anh em Trắc Địa đỡ vất vả.

Xin chân thành cảm ơn !

Em load chương trình này vào.

Lệnh là Gan1

Mỗi lần Bạn chọn 1 thửa đất bao gồm tên chủ đất,diện tích v.v..

Chương trình sẽ ghi ra file text c:.txt

bạn vào excel để mở file đó ra.

Bạn nên tạo file trống c:.txt trước để append hợp lệ (file trong đó chua có ký tự gì cả)

(defun c:Gan1(/ ss1)

(setq nhap1 1)

(While nhap1

(setq

; ent0 (car (entsel "\nChon:"))

ss1 (ssget (list (Cons 0 "TEXT")))

)

(If ss1

(progn

(setq ntt (sslength ss1) i 0)

(Repeat ntt

(setq ent (ssname ss1 i)

dsloai (entget ent)

i (1+ i)

)

(Cond

((= "SoThua" (cdr (assoc 8 dsloai)))

(setq ni (cdr (assoc 1 dsloai)))

)

((= "Text" (cdr (assoc 8 dsloai)))

(setq tenchu (cdr (assoc 1 dsloai)))

)

((and (vl-string-search "." (cdr (assoc 1 dsloai)))(> (atof (cdr (assoc 1 dsloai))) 0.01))

(setq Dientich (cdr (assoc 1 dsloai)))

)

((< (atof (cdr (assoc 1 dsloai))) 0.001)

(setq Ghichu (cdr (assoc 1 dsloai)))

)

 

)

)

(print (list ni dientich tenchu ghichu))

)

)

(setq chu (strcat "\n" ni ";" dientich ";" tenchu ";" ghichu)

fkq (open "c:/0.txt" "a")

)

(princ chu fkq)(close fkq)

(command "erase" ss1 "")

(setq nhap1 (getstring "\nBan nhap tiep"))

)

)

  • Vote tăng 1

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

Rất cảm ơn anh !

Nhưng Lisp này không ổn lắm vì :

- Mỗi lần chỉ chọn được 1 thửa

- Sau khi chọn nó nhặt chính cái được chọn đưa vào file .txt

Làm như vậy sau khi chọn xong bản vẽ mất hết Text

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 cho em hỏi có thể chuyển dữ liệu từ Cad sang Excel theo dạng này không ?

 

http://www.cadviet.com/upfiles/3/new_folder.rar

 

Em nhiều khi phải làm thống kê diện tích nhưng toàn phải nhập bằng tay trên Excel, lâu quá là lâu, Nhiều khi lên tới hàng vài trăm thửa đất. Quá trình này rất mất nhiều thời gian.

Rất mong các bác trên diễn đàn giúp đỡ để cho anh em Trắc Địa đỡ vất vả.

Xin chân thành cảm ơn !

Bạn chạy thử Code này nhé :

(defun c:CTE(/ ss ent sht dtich cthua gchu lst i fname)
;copyright by Tue_NV
(IF (ACET-UTIL-VER)
(PROGN
(iF (setq ss (ssget '((0 . "*POLYLINE") (70 . 1))))
(pROGN (setq i -1 lst '())
 (while (setq ent (ssname ss (setq i (1+ i))))
   (setq L (acet-geom-vertex-list ent))
   (if (and (setq sht (ssget "CP" L '((0 . "*TEXT") (8 . "Sothua") (1 . "~*[~0-9]*"))))  
   	     (setq dtich (ssget "CP" L '((0 . "*TEXT") (8 . "Dientich") (1 . "*#.#*,*#,#*"))))
   	     (setq cthua (ssget "CP" L '((0 . "*TEXT") (8 . "Text") (1 . "*@*"))))
   	     (setq gchu (ssget "CP" L '((0 . "*TEXT") (8 . "Dientich") (1 . "@@@"))))
)
      (setq lst (vl-sort 
           (append lst
   		     (list
	 	 (mapcar '(lambda(x)
		   		(acet-dxf 1 (entget x))
			   )
    			(apply 'append
		       		(mapcar 'acet-ss-to-list
			       			(list sht sht cthua dtich gchu)
		       		)
			)
   		   	)
	     )
          );append
	 '(lambda (x1 x2) (		);vl-sort
   	)
    )
 );while
 ;;;;;;;;;;;;;;
(if (setq fName (getfiled "Ten file xuat " (getvar "dwgprefix") "xls" 1))
  (progn
(setq fName (open fName "w"))
(write-line "STT\tSO HIEU THUA\tCHU THUA\tDIEN TICH\tGHI CHU" fname)
(foreach pt lst
   (write-line (strcat (nth 0 pt) "\t" (nth 1 pt) "\t" (nth 2 pt) "\t"
		       (nth 3 pt) "\t" (nth 4 pt)) fName)
)
      (close fName)
  )
)
 ))));PROGN_IF
(setvar "modemacro" "Chuc ban lam viec hieu qua - tue_nvcc@yahoo.com")
(princ)
)

  • Vote tăng 3

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
Rất cảm ơn anh !

Nhưng Lisp này không ổn lắm vì :

- Mỗi lần chỉ chọn được 1 thửa

- Sau khi chọn nó nhặt chính cái được chọn đưa vào file .txt

Làm như vậy sau khi chọn xong bản vẽ mất hết Text

:cheers:

Xin lỗi Em,hqua định ghi chú mà quên!

1.-Để tránh thửa đất đã vào rồi mà vào lại lần 2 nên chương trình cố tình xóa đi các text thửa đất vào rồi.File kết quả là c:0.txt.Khi chọn Em chỉ bao chọn các text (nếu chọn cả đường line cũng không sao)trong cùng 1 thửa chứ k phải pick từng text;Nó sẽ đưa kết quả là 1 dãy gồm số thứ tự,diện tích v.v....của thửa đó,kế tiếp Em bao qua thửa khác...cho đến hết...Nếu mệt thì dừng nghỉ, chiều lại mở file đó ra làm tiếp... :cheers:

2.-Cũng vì vậy nên save qua 1 file tạm để thực thi.

3.-Có lẽ giải pháp chọn các đường POLY như Tue_NV tốt hơn, vì sẽ là chọn cả gói.Em đưa toàn bộ file dwg số liệu lên (ở đây mới 5 thửa không biết các thửa còn lại ra sao)thì mới dễ suy đoán qui luật của bài toán cần làm điều đó mới giúp cho người lập trình tìm được hướng đi tốt nhất.

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
Bạn chạy thử Code này nhé :

(defun c:CTE(/ ss ent sht dtich cthua gchu lst i fname)
;copyright by Tue_NV
(IF (ACET-UTIL-VER)
(PROGN
(iF (setq ss (ssget '((0 . "*POLYLINE") (70 . 1))))
(pROGN (setq i -1 lst '())
 (while (setq ent (ssname ss (setq i (1+ i))))
   (setq L (acet-geom-vertex-list ent))
   (if (and (setq sht (ssget "CP" L '((0 . "*TEXT") (8 . "Sothua") (1 . "~*[~0-9]*"))))  
   	     (setq dtich (ssget "CP" L '((0 . "*TEXT") (8 . "Dientich") (1 . "*#.#*,*#,#*"))))
   	     (setq cthua (ssget "CP" L '((0 . "*TEXT") (8 . "Text") (1 . "*@*"))))
   	     (setq gchu (ssget "CP" L '((0 . "*TEXT") (8 . "Dientich") (1 . "@@@"))))
)
      (setq lst (vl-sort 
           (append lst
   		     (list
	 	 (mapcar '(lambda(x)
		   		(acet-dxf 1 (entget x))
			   )
    			(apply 'append
		       		(mapcar 'acet-ss-to-list
			       			(list sht sht cthua dtich gchu)
		       		)
			)
   		   	)
	     )
          );append
	 '(lambda (x1 x2) (< (atoi (car x1)) (atoi (car x2))))
	);vl-sort
   	)
    )
 );while
 ;;;;;;;;;;;;;;
(if (setq fName (getfiled "Ten file xuat " (getvar "dwgprefix") "xls" 1))
  (progn
(setq fName (open fName "w"))
(write-line "STT\tSO HIEU THUA\tCHU THUA\tDIEN TICH\tGHI CHU" fname)
(foreach pt lst
   (write-line (strcat (nth 0 pt) "\t" (nth 1 pt) "\t" (nth 2 pt) "\t"
		       (nth 3 pt) "\t" (nth 4 pt)) fName)
)
      (close fName)
  )
)
 ))));PROGN_IF
(setvar "modemacro" "Chuc ban lam viec hieu qua - tue_nvcc@yahoo.com")
(princ)
)

 

Anh ơi sau khi Load Lisp của anh em chạy, khi quét các đối tượng nó hiện lên thông báo

 

Select objects: ; error: no function definition: ACET-GEOM-VERTEX-LIST

 

Đây là lỗi gì vậy anh, em chưa biết về Lisp lắm.

Anh xem hộ em cái nhé !

Xin cảm ơn anh nhiều !

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
Anh ơi sau khi Load Lisp của anh em chạy, khi quét các đối tượng nó hiện lên thông báo

 

Select objects: ; error: no function definition: ACET-GEOM-VERTEX-LIST

 

Đây là lỗi gì vậy anh, em chưa biết về Lisp lắm.

Anh xem hộ em cái nhé !

Xin cảm ơn anh nhiều !

Máy của bạn phải cài phụ trợ Express mới sử dụng được Lisp đó.

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
Máy của bạn phải cài phụ trợ Express mới sử dụng được Lisp đó.

 

Anh ơi có thể chỉnh lại Lisp cho em một trong trường hợp này được không anh

 

http://www.cadviet.com/upfiles/3/vd_5.rar

 

Em rất cảm ơn anh !

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
Bạn chạy thử Code này nhé :

(defun c:CTE(/ ss ent sht dtich cthua gchu lst i fname)
;copyright by Tue_NV
(IF (ACET-UTIL-VER)
(PROGN
(iF (setq ss (ssget '((0 . "*POLYLINE") (70 . 1))))
(pROGN (setq i -1 lst '())
 (while (setq ent (ssname ss (setq i (1+ i))))
   (setq L (acet-geom-vertex-list ent))
   (if (and (setq sht (ssget "CP" L '((0 . "*TEXT") (8 . "Sothua") (1 . "~*[~0-9]*"))))  
   	     (setq dtich (ssget "CP" L '((0 . "*TEXT") (8 . "Dientich") (1 . "*#.#*,*#,#*"))))
   	     (setq cthua (ssget "CP" L '((0 . "*TEXT") (8 . "Text") (1 . "*@*"))))
   	     (setq gchu (ssget "CP" L '((0 . "*TEXT") (8 . "Dientich") (1 . "@@@"))))
)
      (setq lst (vl-sort 
           (append lst
   		     (list
	 	 (mapcar '(lambda(x)
		   		(acet-dxf 1 (entget x))
			   )
    			(apply 'append
		       		(mapcar 'acet-ss-to-list
			       			(list sht sht cthua dtich gchu)
		       		)
			)
   		   	)
	     )
          );append
	 '(lambda (x1 x2) (< (atoi (car x1)) (atoi (car x2))))
	);vl-sort
   	)
    )
 );while
 ;;;;;;;;;;;;;;
(if (setq fName (getfiled "Ten file xuat " (getvar "dwgprefix") "xls" 1))
  (progn
(setq fName (open fName "w"))
(write-line "STT\tSO HIEU THUA\tCHU THUA\tDIEN TICH\tGHI CHU" fname)
(foreach pt lst
   (write-line (strcat (nth 0 pt) "\t" (nth 1 pt) "\t" (nth 2 pt) "\t"
		       (nth 3 pt) "\t" (nth 4 pt)) fName)
)
      (close fName)
  )
)
 ))));PROGN_IF
(setvar "modemacro" "Chuc ban lam viec hieu qua - tue_nvcc@yahoo.com")
(princ)
)

 

Công nhận bác TUE_NV viết siêu thật

Câu lệnh ngắn gọn, đơn giản thật

Tui đọc mà không hiểu luôn

Đến khi load lên chạy mới thấy khả năng ứng dụng của nó

Khâm phục, khâm phục

Bữa nào mời bác làm ly cafe Long buổi sáng nhé

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
Anh ơi có thể chỉnh lại Lisp cho em một trong trường hợp này được không anh

 

http://www.cadviet.com/upfiles/3/vd_5.rar

 

Em rất cảm ơn anh !

Được chứ. Bây giờ thì bạn muốn "bỏ cái gì" cũng được :cheers: . "Bỏ tất cả" cũng được luôn. Lisp sẽ cho ra những thửa "không chủ", bằng những dòng "vườn không nhà trống" trong Excel :cheers:


(defun c:CTE(/ ss ent sht dtich cthua gchu i L lst fname)
;copyright by Tue_NV
(defun checkss (sset)
   (if (null sset) 
(acet-list-to-ss (list (entmakex (list (cons 0 "TEXT") (cons 1 "") (cons 10 (list 0 0 0)) (cons 40 2) ) ) ))
   )
)
(IF (ACET-UTIL-VER)
(PROGN
(iF (setq ss (ssget '((0 . "*POLYLINE") (70 . 1))))
(pROGN (setq i -1 lst '())
 (while (setq ent (ssname ss (setq i (1+ i))))
   (setq L (acet-geom-vertex-list ent))
   (if (null (setq sht (ssget "CP" L '((0 . "*TEXT") (8 . "Sothua") (1 . "~*[~0-9]*")))) ) 
(setq sht (checkss sht)) )
   (if (null (setq dtich (ssget "CP" L '((0 . "*TEXT") (8 . "Dientich") (1 . "*#.#*,*#,#*")))) )
(setq dtich (checkss dtich)) )
   (if (null (setq cthua (ssget "CP" L '((0 . "*TEXT") (8 . "Text") (1 . "*@*")))) ) 
(setq cthua (checkss cthua)) )
   (if (null (setq gchu (ssget "CP" L '((0 . "*TEXT") (8 . "Dientich") (1 . "@@@")))) )
(setq gchu (checkss gchu)) )
      (setq lst (vl-sort 
           (append lst
   		     (list
	 	 (mapcar '(lambda(x) 
		   		(acet-dxf 1 (entget x))
			   )
    			(apply 'append
		       		(mapcar 'acet-ss-to-list
			       			(list sht sht cthua dtich gchu)
		       		)
			)
   		   	)
	     )
          );append
	 '(lambda (x1 x2) (		);vl-sort
   	)
 );while
 ;;;;;;;;;;;;;;
(if (setq fName (getfiled "Ten file xuat " (getvar "dwgprefix") "xls" 1))
  (progn
(setq fName (open fName "w"))
(write-line "STT\tSO HIEU THUA\tCHU THUA\tDIEN TICH\tGHI CHU" fname)
(foreach pt lst
   (write-line (strcat (nth 0 pt) "\t" (nth 1 pt) "\t" (nth 2 pt) "\t"
		       (nth 3 pt) "\t" (nth 4 pt)) fName)
)
      (close fName)
  )
)
 ))));PROGN_IF
(setvar "modemacro" "Chuc ban lam viec hieu qua - tue_nvcc@yahoo.com")
(princ)
)

@bác VuVUZELA : Bác cũng ở Đà Nẵng à?? Có duyên chắc Tue_NV cũng sẽ được gặp bác thôi :cheers:

  • Vote tăng 3

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

Tue_NV thân !

Lisp của bạn rất là hay, rất cảm ơn bạn đã giúp đỡ anh em trắc địa bọn mình.

bạn cho mình hỏi ? mình đã lisp của bạn một số file được nhưng trên File này thì chủ thửa không xuất hiện

 

http://www.cadviet.com/upfiles/3/drawing1_24.dwg

 

trường hợp thửa đất quá bé phần diện như file này thì lisp chạy không tốt lắm

 

http://www.cadviet.com/upfiles/3/drawing2.rar

 

Tue_NV có thể lọc các đối tượng Text như trên theo từng Layer chứa các thông tin về Text đó mà vẫn thỏa mãn các điều kiện trên được không ?

 

Hy vọng được Tue_NV giúp đỡ.

anh em trắc địa chân thành cảm ơn bạn

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 chứ. Bây giờ thì bạn muốn "bỏ cái gì" cũng được :cheers: . "Bỏ tất cả" cũng được luôn. Lisp sẽ cho ra những thửa "không chủ", bằng những dòng "vườn không nhà trống" trong Excel :cheers:

Cảm ơn anh rất ... rất nhiều...!

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
Tue_NV thân !

Lisp của bạn rất là hay, rất cảm ơn bạn đã giúp đỡ anh em trắc địa bọn mình.

bạn cho mình hỏi ? mình đã lisp của bạn một số file được nhưng trên File này thì chủ thửa không xuất hiện

 

http://www.cadviet.com/upfiles/3/drawing1_24.dwg

 

trường hợp thửa đất quá bé phần diện như file này thì lisp chạy không tốt lắm

Bạn phải thay tên Layer của chủ thửa tương ứng trong code

Ví dụ : Layer chủ thửa trong CAD của bạn mang tên là Chu SD thì bạn phải thay tên tương ứng trong code Lisp

Bạn thay dòng :

(if (null (setq cthua (ssget "CP" L '((0 . "*TEXT") (8 . "Text") (1 . "*@*")))) )

(setq cthua (checkss cthua)) )

Thành dòng :

(if (null (setq cthua (ssget "CP" L '((0 . "*TEXT") (8 . "Chu SD") (1 . "*@*")))) )

(setq cthua (checkss cthua)) )

Tương tự như vậy, với Layer số hiệu thửa, diện tích, ghi chú trong code Lisp phải tương ứng với trong file CAD. Tức là tên Layer phải như nhau -> để Lisp có thể tìm được

 

.................

trường hợp thửa đất quá bé phần diện như file này thì lisp chạy không tốt lắm

 

http://www.cadviet.com/upfiles/3/drawing2.rar

 

Tue_NV có thể lọc các đối tượng Text như trên theo từng Layer chứa các thông tin về Text đó mà vẫn thỏa mãn các điều kiện trên được không ?

 

Hy vọng được Tue_NV giúp đỡ.

anh em trắc địa chân thành cảm ơn bạn

Lisp sẽ lọc được chính xác nếu như số hiệu thửa, chủ thửa, diện tích, ghi chú nằm gần trọng tâm của thửa. Vì Lisp sẽ xác định nó theo quy luật này. Nếu như không theo quy luật nào cả, thì Lisp sẽ chạy không chính xác. Lísp trên chưa làm được điều này. nếu các bạn đồng ý và chỉnh sửa như ý của Tue_NV thì mình mới viết tiếp. Vậy nhé

 

Tue_NV nhắc nhở bạn hoangtan_vn : Không được post 1 chủ đề ở 2 topic khác nhau

  • Vote tăng 1

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ảm ơn Tue_NV đã giúp đỡ, thật sự mình không am hiểu về Lisp nên chỉ là đưa ra đề xuất vậy thôi

Có j mình sẽ thử và nếu trục trặc thì mình sẽ nhờ bạn giúp.

Vì mới vào diễn đàn nên còn thiếu kinh nghiệm nên mình Post trên 2 Topick, Sorry bạn nhé

Xin cảm ơn bạn đã 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
Bạn chạy thử Code này nhé :

(defun c:CTE(/ ss ent sht dtich cthua gchu lst i fname)
;copyright by Tue_NV
(IF (ACET-UTIL-VER)
(PROGN
(iF (setq ss (ssget '((0 . "*POLYLINE") (70 . 1))))
(pROGN (setq i -1 lst '())
 (while (setq ent (ssname ss (setq i (1+ i))))
   (setq L (acet-geom-vertex-list ent))
   (if (and (setq sht (ssget "CP" L '((0 . "*TEXT") (8 . "Sothua") (1 . "~*[~0-9]*"))))  
   	     (setq dtich (ssget "CP" L '((0 . "*TEXT") (8 . "Dientich") (1 . "*#.#*,*#,#*"))))
   	     (setq cthua (ssget "CP" L '((0 . "*TEXT") (8 . "Text") (1 . "*@*"))))
   	     (setq gchu (ssget "CP" L '((0 . "*TEXT") (8 . "Dientich") (1 . "@@@"))))
)
      (setq lst (vl-sort 
           (append lst
   		     (list
	 	 (mapcar '(lambda(x)
		   		(acet-dxf 1 (entget x))
			   )
    			(apply 'append
		       		(mapcar 'acet-ss-to-list
			       			(list sht sht cthua dtich gchu)
		       		)
			)
   		   	)
	     )
          );append
	 '(lambda (x1 x2) (< (atoi (car x1)) (atoi (car x2))))
	);vl-sort
   	)
    )
 );while
 ;;;;;;;;;;;;;;
(if (setq fName (getfiled "Ten file xuat " (getvar "dwgprefix") "xls" 1))
  (progn
(setq fName (open fName "w"))
(write-line "STT\tSO HIEU THUA\tCHU THUA\tDIEN TICH\tGHI CHU" fname)
(foreach pt lst
   (write-line (strcat (nth 0 pt) "\t" (nth 1 pt) "\t" (nth 2 pt) "\t"
		       (nth 3 pt) "\t" (nth 4 pt)) fName)
)
      (close fName)
  )
)
 ))));PROGN_IF
(setvar "modemacro" "Chuc ban lam viec hieu qua - tue_nvcc@yahoo.com")
(princ)
)

 

Bác Tue_NV ơi

Mấy cái ký hiệu * # @ gì gì đó có nghĩa là gì vậy

Bác có thể giải thích được không ?

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
Bác Tue_NV ơi

Mấy cái ký hiệu * # @ gì gì đó có nghĩa là gì vậy

Bác có thể giải thích được không ?

to VUVUZELA, hơi bị ngạc nhiên đấy :cheers:

Xem help của hàm WCMATCH

wild_card.jpg

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

Bạn Tue_NV xem lại dùm sao file này không xuất sang excel được. Sao khi apload lisp lên gõ lệnh CTE và chọn đối tượng thì chương trình báo Specify opposite corner: 0 found. Mình có cần phải tạo tâm thửa trước không, tạo bằng cách nào bạn chỉ dùm mình với. Bạn xem file và làm dùm mình nhé:

http://www.cadviet.com/upfiles/3/vd_9.rar

Cám ơn bạn nhiều

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

Vấn đề là trong thửa đất của em có 3 hộ hặc nhiều hơn nữa Vậy khi xuất xang excel các hộ trong 1 thửa phải cùng trong 1 cột, ngăn cách bằng dấy "," hặc dấu ";" như trong ví dụ em up lên .Nhờ các bác bổ xung lisp này em với xin trân thành cảm ơn các bác.

http://www.cadviet.com/upfiles/3/vidu_3.rar

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
Vấn đề là trong thửa đất của em có 3 hộ hặc nhiều hơn nữa Vậy khi xuất xang excel các hộ trong 1 thửa phải cùng trong 1 cột, ngăn cách bằng dấy "," hặc dấu ";" như trong ví dụ em up lên .Nhờ các bác bổ xung lisp này em với xin trân thành cảm ơn các bác.

http://www.cadviet.com/upfiles/3/vidu_3.rar

Bạn thử cái này nhé :

(defun c:CTE(/ ss ent sht dtich cthua gchu i fname lst chuoi)
;copyright by Tue_NV
(IF (ACET-UTIL-VER)
(PROGN
(iF (setq ss (ssget '((0 . "*POLYLINE") (70 . 1))))
(pROGN (setq i -1 lst '())
 (while (setq ent (ssname ss (setq i (1+ i))))
   (setq L (acet-geom-vertex-list ent))
   (if (and (setq sht (ssget "CP" L '((0 . "*TEXT") (8 . "Sothua") (1 . "~*[~0-9]*"))))  
   	     (setq dtich (ssget "CP" L '((0 . "*TEXT") (8 . "Dientich") (1 . "*#.#*,*#,#*"))))
   	     (setq cthua (ssget "CP" L '((0 . "*TEXT") (8 . "Text") (1 . "*@*"))))
   	     (setq gchu (ssget "CP" L '((0 . "*TEXT") (8 . "Dientich") (1 . "@@@"))))
)
      (setq lst (vl-sort 
           (append lst
   		     (list
	 	 (mapcar '(lambda(x)
		   		(acet-dxf 1 (entget x))
			   )
    			(apply 'append
		       		(mapcar 'acet-ss-to-list
			       			(list sht sht cthua dtich gchu)
		       		)
			)
   		   	)
	     )
          );append
	 '(lambda (x1 x2) (		);vl-sort
   	)
    )
 );while
 ;;;;;;;;;;;;;;
(if (setq fName (getfiled "Ten file xuat " (getvar "dwgprefix") "xls" 1))
  (progn
(setq fName (open fName "w") )
(write-line "STT\tSO HIEU THUA\tCHU THUA\tDIEN TICH\tGHI CHU" fname)
(foreach pt lst
  (if (>= (setq lenpt (length pt)) 5)
    (progn
       (setq i 1 chuoi "")
 	       (write-line (strcat (nth 0 pt) "\t" (nth 1 pt) "\t" 
			   (Repeat (- lenpt 4)
			      (setq i (1+ i))
			      (if (= lenpt 5)
			      	(setq chuoi (nth i pt))
				(setq chuoi (strcat chuoi (nth i pt) " ;"))
			      )
			   )
			   "\t" (nth (- lenpt 2) pt) "\t" (nth (- lenpt 1) pt)) fName)
    )		
  )
 )
      (close fName)
  )
)
 ))));PROGN_IF
(setvar "modemacro" "Chuc ban lam viec hieu qua - tue_nvcc@yahoo.com")
(princ)
)

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

×