Đến nội dung


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

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


  • Please log in to reply
51 replies to this topic

#1 sanit

sanit

    biết vẽ line

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

Đã gửi 04 August 2012 - 03:03 PM

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ình đã gửi

Hình đã gửi
  • 0

#2 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 04 August 2012 - 03:21 PM

Code VBA được không bạn ?
  • 0

#3 sanit

sanit

    biết vẽ line

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

Đã gửi 04 August 2012 - 03:53 PM

OK cảm ơn bạn nhiều, VBA, VBnet.. gì đều được hết :)
  • 0

#4 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 04 August 2012 - 04:02 PM

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...
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#5 sanit

sanit

    biết vẽ line

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

Đã gửi 04 August 2012 - 04:13 PM

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ề.
  • 0

#6 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 04 August 2012 - 04:22 PM

Đã 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
  • 1

#7 sanit

sanit

    biết vẽ line

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

Đã gửi 04 August 2012 - 04:48 PM

Đã 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.
  • 0

#8 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 05 August 2012 - 09:29 AM

Bạn nên cho cả cái file đính kèm lên diễn đàn nhé !
  • 0

#9 sanit

sanit

    biết vẽ line

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

Đã gửi 05 August 2012 - 08:41 PM

Bạn nên cho cả cái file đính kèm lên diễn đàn nhé !


Hi, thanks bạn !
Nội dung mình sẽ diễn đạt lại một lần nữa như hình và trong file đính kèm mong bạn và các bạn giúp đỡ !
http://www.cadviet.c...17_drawing1.rar

Hình đã gửi
  • 0

#10 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 05 August 2012 - 09:17 PM

"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ý ???
  • 1

#11 sanit

sanit

    biết vẽ line

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

Đã gửi 05 August 2012 - 09:31 PM

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 !
  • 0

#12 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 05 August 2012 - 09:42 PM

"Phiền" để khi khác tôi rảnh nhé !
  • 1

#13 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 06 August 2012 - 04:25 PM

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.
  • 3
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#14 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 06 August 2012 - 06:01 PM

Giờ mới Post cho bạn được
Bạn Giải nén rồi Load 2 file đính kèm, đánh lệnh TKT
Minh họa:

http://www.cadviet.c...48467_tkt_2.rar
  • 2

#15 sanit

sanit

    biết vẽ line

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

Đã gửi 06 August 2012 - 08:09 PM

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 !
  • 0

#16 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 06 August 2012 - 08:27 PM

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)
  • 3

* 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.


#17 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 06 August 2012 - 09:19 PM

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 !
  • 0

#18 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 06 August 2012 - 09:26 PM

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.
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#19 sanit

sanit

    biết vẽ line

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

Đã gửi 06 August 2012 - 09:31 PM

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 !


  • 0

#20 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 368 Bài viết
Điểm đánh giá: 39 (tàm tạm)

Đã gửi 06 August 2012 - 09:44 PM

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 :)
  • 1