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

[Yêu cầu] Lisp xuất text theo thứ tự chọn ra excel

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

Chào các bạn ! Mình tìm không thấy lisp theo yêu cầu nên mạo muội post yêu cầu, nếu có rồi mong các bạn cho link

Ý tưởng của mình là chọn từ pick 1 ~ pick 8 sau đó xuất ra bảng trong Autocad hoặc excel càng tốt

Lưu ý là sau khi chèn text từ pick1 đến pick8 ra bảng quá trình lại tiếp tục lặp lại để chọn các text khác mà không phải chọn điểm chèn bảng nữa(tức là chỉ chọn điểm đặt bảng 1 lần) Và mỗi lần chèn bảng chỉ gồm 8 lần pick chọn

Thanks!

 

.08fa881c98f17d121ef29ad7e402910c_47832330.1.png

 

6024cf0736f5a05667ccb259f0705d18_47832331.2.png

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

Chào các bạn ! Mình tìm không thấy lisp theo yêu cầu nên mạo muội post yêu cầu, nếu có rồi mong các bạn cho link

Ý tưởng của mình là chọn từ pick 1 ~ pick 8 sau đó xuất ra bảng trong Autocad hoặc excel càng tốt

Lưu ý là sau khi chèn text từ pick1 đến pick8 ra bảng quá trình lại tiếp tục lặp lại để chọn các text khác mà không phải chọn điểm chèn bảng nữa(tức là chỉ chọn điểm đặt bảng 1 lần) Và mỗi lần chèn bảng chỉ gồm 8 lần pick chọn

Thanks!

 

 

Hề hề hề,

Hoặc khác với và. vậy bạn muốn hoặc hay muốn và??? Theo mình hiểu thì và đúng hơn vì mọi người thường muốn thấy cái bảng trong CAD là chính, cái cho vào Excel chỉ là phụ.

Bạn trả lời cho rõ nhé, kẻo người ta làm hoặc xon bạn lại bảo và thì hơi mất công...

  • 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

Hề hề hề,

Hoặc khác với và. vậy bạn muốn hoặc hay muốn và??? Theo mình hiểu thì và đúng hơn vì mọi người thường muốn thấy cái bảng trong CAD là chính, cái cho vào Excel chỉ là phụ.

Bạn trả lời cho rõ nhé, kẻo người ta làm hoặc xon bạn lại bảo và thì hơi mất công...

Hề, thực ra mình muốn xuất ra excel luôn, nhưng có thêm tùy chọn xuất ra Autocad nữa thì hề hề.

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

Đã xong cho bạn đây.

Tải về File sau

Mở Cad => Lệnh AP => Load các file trong thư mục vừa rồi => Đánh lệnh: TKT ( Xuất Text ra Excel)

http://www.cadviet.c...48467_tkt_1.rar

 

Thanks bạn !

Mình đã thực hiện vba của bạn xuất rất tốt các text đã chọn thành 1 hàng trong excel

nhưng như yêu cầu của mình là chỉ xuất 8 text /hàng sau đó lặp lại xuống hàng thứ 2 lại 8 text khác...

Bạn kiểm tra sửa lại giúp mì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

"Khó" của Nam Cường :D

Rốt cuộc là File Cad hay Excel ?

Mình đã Code xong cho trường hợp file Excel rồi

Sáng mai tôi mới Post cho bạn được giờ đang bận :)

Haizz

Theo tôi nếu như hình bạn yêu cầu thì việc xuất ra Cad chỉ là để thể hiện trực quan thôi

Cái chính là xuất dữ liệu để xử lý ???

  • 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

Phiền bạn code cho mình thêm trường hợp xuất ra Autocad nữa cho dễ quan sát và làm việc nhanh hơn !

Thanks !

Hề hề hề,

Phiền bạn test thử cái lisp này coi đã ưng ý chưa nhé.


(defun c:xtxt ()
(vl-load-com)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(setq tmp (getfiled "Chon file xuat Text goc" (getvar "dwgprefix") "csv;txt" 1))
(setq fw (open tmp "w"))
(setq p1 (getpoint "\n Chon diem dat bang"))
(setq h (getreal "\n Nhap chieu cao chu: "))
(alert "\n Chon lan luot cac text can xuat trong mot nhom ")
(setq sst (ssget (list (cons 0 "*text"))))
(while sst
	(setq sstl (acet-ss-to-list sst)
          	p2 (polar p1 0 (* 8 h))
          	p3 (polar p2 0 (* 8 h))
          	p4 (polar p3 0 (* 8 h))
          	p5 (polar p4 0 (* 8 h))
          	p6 (polar p5 0 (* 8 h))
          	p7 (polar p6 0 (* 8 h))
          	p8 (polar p7 0 (* 8 h))
          	p9 (polar p8 0 (* 8 h))
          	p11 (polar p1 (- (/ pi 2)) (* 4 h))
          	p12 (polar p2 (- (/ pi 2)) (* 4 h))
          	p13 (polar p3 (- (/ pi 2)) (* 4 h))
          	p14 (polar p4 (- (/ pi 2)) (* 4 h))
          	p15 (polar p5 (- (/ pi 2)) (* 4 h))
          	p16 (polar p6 (- (/ pi 2)) (* 4 h))
          	p17 (polar p7 (- (/ pi 2)) (* 4 h))
          	p18 (polar p8 (- (/ pi 2)) (* 4 h))
          	p19 (polar p9 (- (/ pi 2)) (* 4 h))
          	p21 (list (+ (car p1) (* 4 h)) (- (cadr p1) (* 2 h)))
          	k 0
          	txl ""
	)
	(command "pline" p1 p9 p19 p11 "c")
	(command "pline" p2 p12 "" )
	(command "pline" p3 p13 "" )
	(command "pline" p4 p14 "" )
	(command "pline" p5 p15 "" )
	(command "pline" p6 p16 "" )
	(command "pline" p7 p17 "" )
	(command "pline" p8 p18 "" )
	(foreach txt sstl
           (setq t1 (cdr (assoc 1 (entget txt)))                      
                     txl (strcat txl t1 ",")  )
           (command "text" "j" "mc" (list (+ (car p21) (* k 8 h)) (cadr p21)) h 0 t1)
           (setq  k (1+ k ) )
	)
	(write-line txl fw)
	(alert "\n Tiep tuc chon lan luot cac text can xuat cho nhom ke tiep")
	(setq sst (ssget (list (cons 0 "*text"))))
	(setq p1 p11)
)
(close fw)
(setvar "osmode" oldos)
(princ)
)

Chúc bạn vui.

  • Vote tăng 4

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 bạn phamthanhbinh và nguyenngocson đã nhiệt tình giúp, cả lisp và VBA mình sử dụng đều rất tốt

Lisp của bác phamthanhbinh chèn bảng trong Autocad rất tiện nhưng khi xuât sang đuôi csv tất cả các text được chọn đều nằm trong 1 ô (Nếu mỗi text thành ô riêng biệt thì hoàn hảo).

của bạn nguyenngocson thì mỗi text một ô nhưng cứ 8 text lại thành 1 file excel riêng, và xuất ra Autocad mỗi lần phải chọn điểm chèn

Nhưng như như vậy là quá đủ đối với mình, Xin chân thành cảm ơn các bạn đã nhiệt tì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

Không có chuyện xuất ra *.csv mà các text nằm cùng ô đâu. Bạn kiểm tra lại kỹ đi.

Tốt nhất là bạn sửa "csv;txt" thành "csv" (vì bác PTB sơ ý ở chỗ này)

  • 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
Cảm ơn bạn phamthanhbinh và nguyenngocson đã nhiệt tình giúp, cả lisp và VBA mình sử dụng đều rất tốt Lisp của bác phamthanhbinh chèn bảng trong Autocad rất tiện nhưng khi xuât sang đuôi csv tất cả các text được chọn đều nằm trong 1 ô (Nếu mỗi text thành ô riêng biệt thì hoàn hảo). của bạn nguyenngocson thì mỗi text một ô nhưng cứ 8 text lại thành 1 file excel riêng, và xuất ra Autocad mỗi lần phải chọn điểm chèn Nhưng như như vậy là quá đủ đối với mình, Xin chân thành cảm ơn các bạn đã nhiệt tình !

Hề hề hề,

Tất cả các text được chọn đều nằm trong 1 ô là do bạn xuất sang file txt chứ không phải file csv.

Để xuất sang file txt thì bạn phải thay dòng code: txl (strcat txl t1 ",") ) thành txl (strcat txl t1 "\t") )

Nếu bạn chỉ xuất sang file csv thì sửa như bác DoanVanHa đã góp ý. Đúng là mình sơ suất chỗ này.

  • 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

Không có chuyện xuất ra *.csv mà các text nằm cùng ô đâu. Bạn kiểm tra lại kỹ đi.

Tốt nhất là bạn sửa "csv;txt" thành "csv" (vì bác PTB sơ ý ở chỗ này)

 

Mình đã kiểm tra lại ok rồi - do mình không để ý đến decimal của customize format trong control panel

 

Bạn kiểm tra lại xem ???

Mình thực hiện trên máy mình không có lỗi trên và hoàn toàn theo đúng ý đồ của bạn ?

Thâ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

Bạn chú ý:

1.Code VBA mình viết bạn làm như sau

-Quét chọn lần lượt từng nhóm text của bạn, cứ đủ 8 text là xếp thành 1 hàng, nếu nó quét tận 10 text thì sẽ sang hàng thứ 2

-Nghĩa là: Bạn chỉ quét chọn 1 lần tất cả các Text mà bạn cần xếp theo nhóm sau đó nhấn Enter => VBA sẽ cho ra đúng như bạn yêu cầu

Nên mỗi hàng chắc chắc chỉ có 8 Text

Code bác Bình nếu có lỡ chọn >8 thì sẽ ra luôn tất cả, không format 1 hàng 8 Text ?

2.Nếu mỗi lần làm bạn chọn 8 Text thì đúng là mỗi lần 1 File :D

Thử lại xem :)

  • Vote tăng 2
  • Vote giảm 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

Bạn chú ý:

1.Code VBA mình viết bạn làm như sau

-Quét chọn lần lượt từng nhóm text của bạn, cứ đủ 8 text là xếp thành 1 hàng, nếu nó quét tận 10 text thì sẽ sang hàng thứ 2

-Nghĩa là: Bạn chỉ quét chọn 1 lần tất cả các Text mà bạn cần xếp theo nhóm sau đó nhấn Enter => VBA sẽ cho ra đúng như bạn yêu cầu

Nên mỗi hàng chắc chắc chỉ có 8 Text

Code bác Bình nếu có lỡ chọn >8 thì sẽ ra luôn tất cả, không format 1 hàng 8 Text ?

2.Nếu mỗi lần làm bạn chọn 8 Text thì đúng là mỗi lần 1 File :D

Thử lại xem :)

 

OK mình kiểm tra lại chuẩn rồi, thanks 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

Nhờ Bác Sơn và các Bác trên diễn đàn sửa VBA trên để lấy xuất text ra file excel. Xuất text từ file cad lấy text từ 2 cột cao độ tự nhiên và khoảng cách lẻ. Kết quả là được file excel như ví em upload lên .http://www.cadviet.com/upfiles/3/72353_vidu1.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

Nhờ Bác Sơn và các Bác trên diễn đàn sửa VBA trên để lấy xuất text ra file excel. Xuất text từ file cad lấy text từ 2 cột cao độ tự nhiên và khoảng cách lẻ. Kết quả là được file excel như ví em upload lên

Mình có file excel làm được công việc mà bạn yêu cầu, bạn xem video để biết cách sử dụng nhé.

Link file excel : http://www.cadviet.c..._sang_excel.rar

Mình up video lên sau, hiện tại youtube đang phê duyệ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

Code hoàn thiện cho bạn "sanit"

TKTver2.0

Code lần này có 1 số ưu điểm sau:

1.Chỉ xuất text là số, nếu bạn có lỡ chọn Text là chữ cũng không sao

2.Chỉ thực hiện khi số Text chia hết cho 8. Nếu bạn chọn số Text không chia hết cho 8 => Thoát hàm

3.Lưu ý: Chọn 1 lần quét tất cả Text cần xuất

4.Thêm chức năng kẻ bảng trong Cad, chiều cao chữ bằng chính chiều cao chữ bạn chọn

Thân!

http://www.cadviet.com/upfiles/3/48467_tktver20.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

Nhờ Bác Sơn và các Bác trên diễn đàn sửa VBA trên để lấy xuất text ra file excel. Xuất text từ file cad lấy text từ 2 cột cao độ tự nhiên và khoảng cách lẻ. Kết quả là được file excel như ví em upload lên .http://www.cadviet.c...72353_vidu1.rar

Kết quả đã rõ, nhưng có lẽ 1 File cad sẽ tốt hơn

Nếu Pick lần lượt từng Text thì mỏi tay lắm :D

Cần File Cad để Auto nhanh hơn chăng ?

  • 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

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

×