Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] Nhờ giúp 1 lisp chèn Block từ Excel


  • Please log in to reply
19 replies to this topic

#1 thonggtcc

thonggtcc

    biết zoom

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

Đã gửi 16 November 2012 - 02:03 PM

Do công việc phải làm lặp đi lặp lại nhiều lần với các Block trong bản vẽ. Nên mình xin các cao thủ của diễn đàn Cadviet.com giúp đỡ 1 lisp điền các Block bằng phương pháp lấy số liệu từ Excel như file đính kèm: http://www.cadviet.c...390_vi_du_3.rar
Xin chân thành cảm ơn.
  • 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 16 November 2012 - 03:11 PM

Cài này chưa rõ lắm nội dung.
Block bạn ghi trong bản vẽ lại không phải là Block.Mà lấy VD đơn giản bằng 1/10 cái đoạn bạn cần thôi
Nhưng viết thì có vẻ lâu đây ? :D
  • 0

#3 thonggtcc

thonggtcc

    biết zoom

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

Đã gửi 16 November 2012 - 03:35 PM

Cài này chưa rõ lắm nội dung.
Block bạn ghi trong bản vẽ lại không phải là Block.Mà lấy VD đơn giản bằng 1/10 cái đoạn bạn cần thôi
Nhưng viết thì có vẻ lâu đây ? :D


Đúng rồi đó bạn. Block chỉ là tên thôi. mình đã Explode ra và dùng ký hiệu cho tiện thôi (trước đó mình dùng Block thuộc tính nên yêu cầu trên sẽ khó hơn thôi --> vì block thông thường lập trình dễ dàng hơn đó mà).
Vì mình chỉ đưa ra 1 số trường hợp để các bạn dễ hình dung, dễ dàng trong lập trình thôi.
Chung qui lại : Số liệu trong cột Lý trình (Excel) phải dùng hàm tách chuỗi (Km[số cần tách:=1000m] + ...[số cần tách]) ví dụ: Km1+250 tách thành: 1250m chính là tọa độ theo phương x.
Tính tọa độ y: là bề rộng mặt đường/2 + 1 khoảng 0,5m lề = y.
Tùy theo vị trí phải hoặc trái tuyến mà y nhận giá trị + hoặc - (trên hoặc dưới trục 0x).
Thêm vị trí (SN : Ghi chú) cho vị trí Block trên. Ghi chú này phải nằm trên hàng Địa danh - địa chỉ (cách trục 0x 1 khoảng Y (hoặc -Y) ứng với vị trí Block theo phương x.
Số lượng Block tương đối nhiều, do đó bạn có thể hướng dẫn mình cách lấy số liệu từ mỗi Cell (Excel: đọc hết số liệu theo cột chỉ định: vì các cột trong excel có thể insert thêm nhiều tùy theo yêu cầu) như thế nào? Ứng với mỗi Mã hiệu (Block cần gán trong Excel) thì xử lý Block trong cad như thế nào? và insert đúng với mỗi vị trí đã định.
Thanks.
  • 0

#4 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 16 November 2012 - 03:40 PM

Chào bạn.
-Theo mình bạn nên tách cái lý trình cần tính ra hai cột: X,Y
-Dữ liệu nữa là cột Z:Tên Block
-Sau khi có đủ dữ liệu thì bạn chèn sẽ dễ dàng hơn rất nhiều.
Nếu bạn làm được như vậy tôi giúp theo như Video sau

  • 1

#5 anpha3

anpha3

    biết vẽ arc

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

Đã gửi 16 November 2012 - 07:53 PM

Lisp của Bác Sơn hay quá Bác up cho em xin 1 bản nhé. Cám ơn Bác!
  • 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 16 November 2012 - 08:54 PM

OK.Mình viết bằng VBA. Đợi mình sang tuần mình úp cho? Code để trên máy cty roài
Thân!
  • 0

#7 thonggtcc

thonggtcc

    biết zoom

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

Đã gửi 19 November 2012 - 01:20 PM

OK.Mình viết bằng VBA. Đợi mình sang tuần mình úp cho? Code để trên máy cty roài
Thân!


Ok. Minh sửa nội dung theo Video của bạn, tuy nhiên có bổ sung 1 số yêu cầu (theo file Excel).
Nhờ bạn giúp hộ mình với.
Thanks.http://www.cadviet.c...0_vi_du_2_1.rar
  • 0

#8 thonggtcc

thonggtcc

    biết zoom

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

Đã gửi 19 November 2012 - 02:19 PM

Mình đưa thêm phần tách chuỗi theo nội dung yêu cầu: http://www.cadviet.c..._thong_ke_2.rar
  • 0

#9 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 21 November 2012 - 08:57 AM

Bận quá.Gửi lại bạn File yêu cầu
Mình chỉ xử lý chèn Block trái và phải tuyến.
HD: tải file Xuat BLK => giải nén => Mở cad => Lệnh AP: load 2 file IBLK.vlx, IBLK.dvb => Lệnh chèn là: IBLK => Làm theo huong dan
(Chú ý: File dữ liệu nằm cùng Folder với Bản vẽ cần chèn)
Thân!
http://www.cadviet.c..._xuat_blk_1.rar
  • 0

#10 thonggtcc

thonggtcc

    biết zoom

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

Đã gửi 21 November 2012 - 01:38 PM

Rất cám ơn sự nhiệt tình của bạn. Mình đã làm theo hướng dẫn sau khi load file thì bị lỗi như sau:

http://www.cadviet.c...u_dung_lisp.doc
Mình đang sử dụng Cad 2012. Excel 2010.
Thân.
  • 0

#11 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 21 November 2012 - 01:52 PM

Bạn chú ý, có thể lỗi đó là do trong bản vẽ của bạn chưa có sẵn các Block có tên như trong cột ở bảng Excel (Quan trọng)
Thân!
  • 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 21 November 2012 - 01:53 PM

Bạn chú ý, có thể lỗi đó là do trong bản vẽ của bạn chưa có sẵn các Block có tên như trong cột ở bảng Excel (Quan trọng)
Thân!
Có gì bạn cứ pm.Mấy cái yêu cầu khác cần có timer,nếu bạn muốn email riêng:nguyenngocson@live.com
  • 0

#13 thonggtcc

thonggtcc

    biết zoom

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

Đã gửi 21 November 2012 - 04:29 PM

Ok. Mình đã thử được rồi.
Lý do lỗi: Đúng như bạn nói. Trong cad phải đặt các tên block trùng với tên block cột Z của Excel.
Mặt khác: Phải đưa về tọa độ 0,0. Dữ liệu trong cột Trái tuyến - phải bằng phải tuyến.


Chương trình của bạn chạy rất tốt, đúng với ý đồ của mình.
Tuy nhiên còn 1 vấn đề nữa mình nhờ bạn giúp nốt:
Đó là cột Ghi chú chưa được điền vào vị trí tương ứng. Dữ liệu trong cột Ghi chú rất nhiều (tương ứng với số lượng Block).
Thanks.
  • 0

#14 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 22 November 2012 - 08:42 AM

Đôi lời góp ý. Cái tọa độ (0,0) của bạn thì do bạn đưa ra như thế thôi. Còn nếu chính xác phải chọn 1 đối tượng nào đó làm chuẩn.
- Bên trái tuyến = Phải tuyến có thể code lại để khác nhau vẫn ok:)
- Để làm được cột ghi chú bạn chèn thêm 1 cột nữa vào sau cột tên Block cả trái và phải tuyến.Hãy cho biêt tọa độ của nó so với tọa độ Block chèn hoặc với điểm gốc => OK :)
- Bạn post 1 file cad đơn giản cái yêu cầu và miêu tả rõ nó trong file luôn
Thân !
  • 0

#15 thonggtcc

thonggtcc

    biết zoom

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

Đã gửi 22 November 2012 - 01:52 PM

Một số ý kiến của bạn mình đã thực hiện theo file đính kèm http://www.cadviet.c...390_cadviet.rar
Còn các vấn đề khác:
- Bên trái tuyến = Phải tuyến có thể code lại để khác nhau vẫn ok:): Cái này bạn tiện thể giải quyết thêm giùm.

- Để làm được cột ghi chú bạn chèn thêm 1 cột nữa vào sau cột tên Block cả trái và phải tuyến.Hãy cho biêt tọa độ của nó so với tọa độ Block chèn hoặc với điểm gốc => OK : Mình đã thực hiện trong file Excel đính kèm ở trên.

- Bạn post 1 file cad đơn giản cái yêu cầu và miêu tả rõ nó trong file luôn : Trong file bản vẽ mình đã có ghi chú thêm.

Rất cám ơn sự giúp đỡ của bạn.
Thanks.
  • 0

#16 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 22 November 2012 - 02:38 PM

Like this đi :)
Xong cho bạn đấy
1.Không cần thiết số km bên trái, phải bằng nhau
2. Nhập chiều cao chữ ký hiệu.
3.File dữ liệu mấu như file
Hãy thử xem !
Thân !http://www.cadviet.c..._xuat_blk_2.rar
  • 2

#17 thonggtcc

thonggtcc

    biết zoom

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

Đã gửi 22 November 2012 - 02:53 PM

Ô. Rất tuyệt vời. Chắc không phải nói lời cảm ơn nào bằng "like this" nhiều lần.
Rất chi là thán phục bạn.
  • 1

#18 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 22 November 2012 - 03:10 PM

Không có gì :)
Theo mình cái của bạn nên sử dụng Block ATT thì hay hơn đấy, thêm Tag thuộc tính để ghi ký tên ký hiệu sẽ hay và linh động hơn :D
  • 0

#19 trung2601

trung2601

    Chưa sử dụng CAD

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

Đã gửi 11 May 2016 - 09:40 AM

Like this đi :)
Xong cho bạn đấy
1.Không cần thiết số km bên trái, phải bằng nhau
2. Nhập chiều cao chữ ký hiệu.
3.File dữ liệu mấu như file
Hãy thử xem !
Thân !http://www.cadviet.c..._xuat_blk_2.rar

Link die hết rồi, bạn nào gửi lại cho mình xin lisp này với, đang cần gấp

Thanks!

 


  • 0

#20 trung2601

trung2601

    Chưa sử dụng CAD

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

Đã gửi 18 May 2016 - 04:32 PM

Bạn nào còn lisp này cho mình xin với, đang rất cần, thanks


  • 0