Đến nội dung


Hình ảnh
- - - - -

Xuất dữ liệu cad sang EXCEL lần lượt


  • Please log in to reply
34 replies to this topic

#1 Trang72

Trang72

    biết vẽ ellipse

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

Đã gửi 26 November 2010 - 08:48 PM

Tại bên file cad có dữ liệu. Nhờ các anh em viết hộ em lisp khi em nhập vào từ ô STT, mã số, khoảng cách, ghi chú
bấm vào oke dữ liệu của em lần lượt xuất sang excel cho đến khi nào bấm vào end lệnh kết thúc.

http://www.cadviet.c...3/cad_excel.dwg
  • 1

#2 Trang72

Trang72

    biết vẽ ellipse

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

Đã gửi 28 November 2010 - 10:27 AM

Em xin nhờ các bác: Bác Hoanh, Bác Tue_NV, bác PhanthanhBinh, bác phantuHuong, bác KSPhanthanhtu và toàn thể các bác cao thủ trên diễn đàn giúp em với .Em trân thành cám ơn các bác
  • 0

#3 nguoi_tho_mo

nguoi_tho_mo

    biết vẽ arc

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

Đã gửi 28 November 2010 - 11:04 AM

Em xin nhờ các bác: Bác Hoanh, Bác Tue_NV, bác PhanthanhBinh, bác phantuHuong, bác KSPhanthanhtu và toàn thể các bác cao thủ trên diễn đàn giúp em với .Em trân thành cám ơn các bác

Bạn nên nêu rõ đầu bài và file cụ thể (thực tế) >> sẽ có cách khác nhau để giải quyết mục đích của bạn
  • 0

#4 Trang72

Trang72

    biết vẽ ellipse

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

Đã gửi 28 November 2010 - 11:54 AM

Tại bên file cad có dữ liệu. Nhờ các anh em viết hộ em lisp khi em nhập vào từ ô STT, mã số, khoảng cách, ghi chú
bấm vào oke dữ liệu của em lần lượt xuất sang excel cho đến khi nào bấm vào end lệnh kết thúc.

http://www.cadviet.c...3/cad_excel.dwg


Khi ta làm việc bên file cad các dữ liệu cần xuất sang excel để thuận tiện cho việc tính toán chính xác và đạt được hiệu quả cao như vậy cần phải xuất dữ liệu sang bên excel bác ạ.
  • 0

#5 npham

npham

    biết lệnh rotate

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

Đã gửi 28 November 2010 - 12:39 PM

Khi ta làm việc bên file cad các dữ liệu cần xuất sang excel để thuận tiện cho việc tính toán chính xác và đạt được hiệu quả cao như vậy cần phải xuất dữ liệu sang bên excel bác ạ.


Theo cái hình vẽ của bác thì có nghĩa là nhập dữ liệu trên CAD nhưng ghi kết quả qua Excel???? Sao bác không nhập thẳng trên excel luôn?

Hay là ý của bác có sẵn đối tượng text trên cad sau đó chọn text này để xuất qua excel?
  • 0

#6 Trang72

Trang72

    biết vẽ ellipse

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

Đã gửi 28 November 2010 - 01:30 PM

Theo cái hình vẽ của bác thì có nghĩa là nhập dữ liệu trên CAD nhưng ghi kết quả qua Excel???? Sao bác không nhập thẳng trên excel luôn?

Hay là ý của bác có sẵn đối tượng text trên cad sau đó chọn text này để xuất qua excel?


Dữ liệu bên cad bác ạ và vì vậy cần phải xuất sang excel tính toán chính xác và thuận tiện hơn. Cám ơn Bác
  • 0

#7 nguoi_tho_mo

nguoi_tho_mo

    biết vẽ arc

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

Đã gửi 28 November 2010 - 03:35 PM

Dữ liệu bên cad bác ạ và vì vậy cần phải xuất sang excel tính toán chính xác và thuận tiện hơn. Cám ơn Bác

Nếu không phải là "bí mật quốc gia" bạn upload file cad của bạn đang làm lên diễn đàn mọi ngưòi giúp ( xóa những phần không liên quan)
  • 0

#8 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

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

Nếu không phải là "bí mật quốc gia" bạn upload file cad của bạn đang làm lên diễn đàn mọi ngưòi giúp ( xóa những phần không liên quan)

Hề hề hề,
Nguoi_tho_mo chưa hiểu hết ý bạn Trang 72 rồi. Bạn ý muốn nhập số liệu từ Cad sang Excel thông qua hộp thoại cơ. Như vậy nó oai hơn cái cách chọn dữ liệu trên bản vẽ theo kiểu Pick piếc này nọ ấy mà. Những cái ấy thì diễn đàn đã có kha khá, nhưng bạn ấy chưa thích nên muốn ra cái đề mới mới hơn ấy mà.
Thực ra làm hộp thoại cũng không quá khó, song vì đang là thời gian chạy xô làm hàng cuối năm nên chưa ai giúp được bạn ấy thôi mà. Mình không rành lắm về DCL nên cũng chưa giúp được, phải ngâm đã rồi mới cứu được. Mong các bác đừng cười hỉ????
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#9 npham

npham

    biết lệnh rotate

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

Đã gửi 28 November 2010 - 10:21 PM

Hề hề hề,
Nguoi_tho_mo chưa hiểu hết ý bạn Trang 72 rồi. Bạn ý muốn nhập số liệu từ Cad sang Excel thông qua hộp thoại cơ. Như vậy nó oai hơn cái cách chọn dữ liệu trên bản vẽ theo kiểu Pick piếc này nọ ấy mà. Những cái ấy thì diễn đàn đã có kha khá, nhưng bạn ấy chưa thích nên muốn ra cái đề mới mới hơn ấy mà.
Thực ra làm hộp thoại cũng không quá khó, song vì đang là thời gian chạy xô làm hàng cuối năm nên chưa ai giúp được bạn ấy thôi mà. Mình không rành lắm về DCL nên cũng chưa giúp được, phải ngâm đã rồi mới cứu được. Mong các bác đừng cười hỉ????


Chắc là không phải. nếu nhập như vậy thì nhập thẳng lên excel không sưóng hơn sao. Hoặc muốn "pro" thì làm cái hộp thoại trên excel mà nhập.
  • 0

#10 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 29 November 2010 - 08:38 AM

Chắc là không phải. nếu nhập như vậy thì nhập thẳng lên excel không sưóng hơn sao. Hoặc muốn "pro" thì làm cái hộp thoại trên excel mà nhập.

Mình cũng có ý như bác npham vậy?
Bạn Trang72 muốn mọi người giúp thì vui lòng làm theo ý của bạn nguoithomo và có thể nói rõ hơn được không?
Bạn có thể sử dụng phần mềm ghim cửa sổ mà ghim Excel lên trên cửa sổ CAD, khi cần cũng có thể tìm dữ liệu bên CAD dễ dàng

Nếu không phải là "bí mật quốc gia" bạn upload file cad của bạn đang làm lên diễn đàn mọi ngưòi giúp ( xóa những phần không liên quan)


  • 0

#11 Trang72

Trang72

    biết vẽ ellipse

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

Đã gửi 04 December 2010 - 01:03 PM

Em xin nhờ các bác: Bác Hoanh, Bác Tue_NV, bác PhanthanhBinh, bác phantuHuong, bác KSPhanthanhtu và toàn thể các bác cao thủ trên diễn đàn giúp em với .Em trân thành cám ơn các bác


Các Bác trên diễn đàn bận hết rồi sao ấy mà chằng giúp em. Buồn quá....
  • 0

#12 npham

npham

    biết lệnh rotate

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

Đã gửi 04 December 2010 - 06:22 PM

Các Bác trên diễn đàn bận hết rồi sao ấy mà chằng giúp em. Buồn quá....


Mọi người nói bác upload cái file mẫu lên, rồi rói rõ cần xuất cái j qua cad, mọi ngưòi sẽ giúp bạn mà
  • 0

#13 Trang72

Trang72

    biết vẽ ellipse

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

Đã gửi 05 December 2010 - 10:08 AM

Mọi người nói bác upload cái file mẫu lên, rồi rói rõ cần xuất cái j qua cad, mọi ngưòi sẽ giúp bạn mà


Em đã upload file lên diễn đàn rồi mà . File nhập bên cad có 4 cọc là text khi nhập xong 4 cọc bấm oke xẽ xuất sang file bên EXcel và cứ lần lượt xuất như vậy theo thức tự nhập xuất. Khi Bấn vào end thì lệnh nhập và xuất mới kết thúc.
http://www.cadviet.c...cad_excel_1.dwg
Cám ơn các bác.
  • 1

#14 npham

npham

    biết lệnh rotate

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

Đã gửi 05 December 2010 - 12:21 PM

Em đã upload file lên diễn đàn rồi mà . File nhập bên cad có 4 cọc là text khi nhập xong 4 cọc bấm oke xẽ xuất sang file bên EXcel và cứ lần lượt xuất như vậy theo thức tự nhập xuất. Khi Bấn vào end thì lệnh nhập và xuất mới kết thúc.
http://www.cadviet.c...cad_excel_1.dwg
Cám ơn các bác.


Mình thắc mắc không hiểu sao bác lại thích như vậy. Nhưng thôi kệ. Chắc công việc của bác cần như thế.
Bác xem đoạn code dưới đây có vừa ý không.
- Copy DCL vào C:\ hoặc sửa lại đườg dẫn theo ý bác
- Nhập liệu bằng TAB- Close để kết thúc
- STT tự gia tăng. Nếu không thích bác có thể sửa code lại
(defun c:input (/ filename f number)
(setq filename (getfiled "Select a File" "" "xls" 1))
(if filename
(progn
(setq f (open filename "w"))
(setq id (load_dialog "C:/input.dcl"))
(new_dialog "input" id)
(set_tile "filename" (strcat "File name:" filename))
(mode_tile "number" 2)
(action_tile "note" "(PROGN
(write-line (strcat
(setq number (get_tile \"number\")) \"\t\"
(get_tile \"code\") \"\t\"
(get_tile \"distance\") \"\t\"
(get_tile \"note\") \"\t\") f)
(set_tile \"number\" (itoa (1+ (atoi number))))
(mode_tile \"code\" 2)
)")

(start_dialog)
(done_dialog)
(unload_dialog id)
(close f)

))

)
input:dialog {
label="Write to file";
: text {key="filename";}
: boxed_row {
label="Row data";
: column {: text {label="Number";} : edit_box {key="number";edit_width=5;}}
: column {: text {label="Code";} : edit_box {key="code";edit_width=8;}}
: column {: text {label="Distance";} : edit_box {key="distance";edit_width=8;}}
: column {: text {label="Notes";} : edit_box {key="note";edit_width=20;}}
}
: button {
label="Close";
fixed_width=true;
is_cancel=true;
key="cancel";
is_default=true;
alignment=right;
}
}

  • 1

#15 Trang72

Trang72

    biết vẽ ellipse

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

Đã gửi 05 December 2010 - 04:45 PM

Mình thắc mắc không hiểu sao bác lại thích như vậy. Nhưng thôi kệ. Chắc công việc của bác cần như thế.
Bác xem đoạn code dưới đây có vừa ý không.
- Copy DCL vào C:\ hoặc sửa lại đườg dẫn theo ý bác
- Nhập liệu bằng TAB- Close để kết thúc
- STT tự gia tăng. Nếu không thích bác có thể sửa code lại

(defun c:input (/ filename f number)
(setq filename (getfiled "Select a File" "" "xls" 1))
(if filename
(progn
(setq f (open filename "w"))
(setq id (load_dialog "C:/input.dcl"))
(new_dialog "input" id)
(set_tile "filename" (strcat "File name:" filename))
(mode_tile "number" 2)
(action_tile "note" "(PROGN
(write-line (strcat
(setq number (get_tile \"number\")) \"\t\"
(get_tile \"code\") \"\t\"
(get_tile \"distance\") \"\t\"
(get_tile \"note\") \"\t\") f)
(set_tile \"number\" (itoa (1+ (atoi number))))
(mode_tile \"code\" 2)
)")

(start_dialog)
(done_dialog)
(unload_dialog id)
(close f)

))

)
input:dialog {
label="Write to file";
: text {key="filename";}
: boxed_row {
label="Row data";
: column {: text {label="Number";} : edit_box {key="number";edit_width=5;}}
: column {: text {label="Code";} : edit_box {key="code";edit_width=8;}}
: column {: text {label="Distance";} : edit_box {key="distance";edit_width=8;}}
: column {: text {label="Notes";} : edit_box {key="note";edit_width=20;}}
}
: button {
label="Close";
fixed_width=true;
is_cancel=true;
key="cancel";
is_default=true;
alignment=right;
}
}



Cám ơn Bác npham đã giúp em đúng như công việc em cần . Bác Cho em hỏi 1 chút Bác có cách nào làm cho hộp hội thoại dialog của lisp này vẫn hiện trên màn hình mà vẫn thực hiện được lệnh pan hoặc Zom các đối tượng trên màn hình cad được không ạ.Bác giúp em nhé Cám ơn Bác nhiều.
  • 0

#16 npham

npham

    biết lệnh rotate

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

Đã gửi 05 December 2010 - 07:08 PM

Cám ơn Bác npham đã giúp em đúng như công việc em cần . Bác Cho em hỏi 1 chút Bác có cách nào làm cho hộp hội thoại dialog của lisp này vẫn hiện trên màn hình mà vẫn thực hiện được lệnh pan hoặc Zom các đối tượng trên màn hình cad được không ạ.Bác giúp em nhé Cám ơn Bác nhiều.


Cái này thì mình bó tay nếu viết bằng lisp. Tạm thời đóng hộp thoại đi thì hoạ may.
Nhờ mấy đại ca trong 4rum chỉ giúp cho bạn ấy.
  • 0

#17 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 06 December 2010 - 06:04 AM

Cám ơn Bác npham đã giúp em đúng như công việc em cần . Bác Cho em hỏi 1 chút Bác có cách nào làm cho hộp hội thoại dialog của lisp này vẫn hiện trên màn hình mà vẫn thực hiện được lệnh pan hoặc Zom các đối tượng trên màn hình cad được không ạ.Bác giúp em nhé Cám ơn Bác nhiều.

Về khả năng thực hiện điều mà bạn muốn thì như bác npham đã viết ở bài viết trên.

Bạn có thể tạo 1 button với chức năng là Zoom Realtime. Khi nhấn vào button đó thì có khả năng zoom , đương nhiên là cũng có thể pan được bằng bánh xe giữa của chuột. Khi enter để thoát khỏi lệnh Zoom thì Dialog lại hiện ra để cho bạn tiếp tục nhập số liệu
  • 0

#18 Trang72

Trang72

    biết vẽ ellipse

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

Đã gửi 06 December 2010 - 12:45 PM

Về khả năng thực hiện điều mà bạn muốn thì như bác npham đã viết ở bài viết trên.

Bạn có thể tạo 1 button với chức năng là Zoom Realtime. Khi nhấn vào button đó thì có khả năng zoom , đương nhiên là cũng có thể pan được bằng bánh xe giữa của chuột. Khi enter để thoát khỏi lệnh Zoom thì Dialog lại hiện ra để cho bạn tiếp tục nhập số liệu


Vậy Em nhờ Bác Tue_NV và các bác Cao Thủ giúp em với.
  • 0

#19 npham

npham

    biết lệnh rotate

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

Đã gửi 06 December 2010 - 02:01 PM

Vậy Em nhờ Bác Tue_NV và các bác Cao Thủ giúp em với.


Mấy chuyện lớn sẽ nhờ tới Cao thủ, việc nhỏ nhỏ mình giúp bạn thử xem sao nhé. hê hê !

Lệnh zoom dưới đây swr dụng nút giữa chuột, trái phải để exit
nếu không vừa ý chổ nào bạn cứ nói nhé.

input:dialog {
label="Write to file";
: text {key="filename";}
: boxed_row {
label="Row data";
: column {: text {label="Number";} : edit_box {key="number";edit_width=5;}}
: column {: text {label="Code";} : edit_box {key="code";edit_width=8;}}
: column {: text {label="Distance";} : edit_box {key="distance";edit_width=8;}}
: column {: text {label="Notes";} : edit_box {key="note";edit_width=20;}}
}
: row { : spacer {width=22;}
: button {
label="Zoom";
fixed_width=true;
key="zoom";
}
: button {
label="Close";
fixed_width=true;
is_cancel=true;
key="cancel";
is_default=true;
alignment=right;
}
}
}


(defun c:input (/ filename f number sta)
(setq filename (getfiled "Select a File" "" "xls" 1))
(if filename
(progn
(setq f (open filename "w"))
(setq id (load_dialog "C:/input.dcl"))

(setq sta 2)
(while (> sta 1)
(new_dialog "input" id)
(set_tile "filename" (strcat "File name:" filename))
(mode_tile "number" 2)
(action_tile "note" "(PROGN
(write-line (strcat
(setq number (get_tile \"number\")) \"\t\"
(get_tile \"code\") \"\t\"
(get_tile \"distance\") \"\t\"
(get_tile \"note\") \"\t\") f)
(set_tile \"number\" (itoa (1+ (atoi number))))
(mode_tile \"code\" 2)
)")
(action_tile "zoom" "(done_dialog 2)")
(setq sta (start_dialog))
(if (= sta 2) (command "zoom" (getpoint "\nSu dung nut giua chuot de zoom, pan :") nil))


)
(done_dialog)
(unload_dialog id)
(close f)

))

)

  • 0

#20 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 06 December 2010 - 02:58 PM

Mấy chuyện lớn sẽ nhờ tới Cao thủ, việc nhỏ nhỏ mình giúp bạn thử xem sao nhé. hê hê !

Lệnh zoom dưới đây swr dụng nút giữa chuột, trái phải để exit
nếu không vừa ý chổ nào bạn cứ nói nhé.

(defun c:input (/ filename f number sta)
(setq filename (getfiled "Select a File" "" "xls" 1))
(if filename
(progn
(setq f (open filename "w"))
(setq id (load_dialog "C:/input.dcl"))
(setq sta 2)
(while (> sta 1)
(new_dialog "input" id)
(set_tile "filename" (strcat "File name:" filename))
(mode_tile "number" 2)
(action_tile "note" "(PROGN
(write-line (strcat
(setq number (get_tile \"number\")) \"\t\"
(get_tile \"code\") \"\t\"
(get_tile \"distance\") \"\t\"
(get_tile \"note\") \"\t\") f)
(set_tile \"number\" (itoa (1+ (atoi number))))
(mode_tile \"code\" 2)
)")
(action_tile "zoom" "(done_dialog 2)")
(setq sta (start_dialog))
(if (= sta 2) (command "zoom" (getpoint "\nSu dung nut giua chuot de zoom, pan :") nil))
)
(done_dialog)
(unload_dialog id)
(close f)
))
)

Chào npham.
Bạn có thể thay dòng :
(if (= sta 2) (command "zoom" (getpoint "\nSu dung nut giua chuot de zoom, pan :") nil))
thành (if (= sta 2) (ssget)) cho phép sử dụng các lệnh Zoom, Pan của CAD, trở lại hộp thoại bằng phím Enter hay chuột phải.

LISP đã đáp ứng đuợc yêu cầu của Trang72, tuy nhiên tôi xin góp ý thêm về giao diện.
Bạn nên tạo thêm 1 button ADD có chức năng thêm dòng dữ liệu hiện tại (giá trị trên các edit_box) vào biến kiểu LISP (lưu data tạm), mỗi lần click ADD thì thêm 1 dòng dữ liệu đồng thời reset các giá trị trên các edit_box.
Khi nguời dùng Click button WriteToFile, dữ liệu của biến LISP mới thực sự đổ vào file (lúc này mới gọi hàm getfiled để chọn file).
  • 0