Đến nội dung


Hình ảnh
- - - - -

Update Block Cho Nhiều File ?


  • Please log in to reply
21 replies to this topic

#1 Bee

Bee

    biết lệnh extend

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

Đã gửi 10 October 2016 - 09:49 PM

Mình có 1 vấn đề về block. Block có cả att. Vấn đề khi sửa lại 1 khung do thay đổi, thì làm sao update cho toàn bộ các bản vẽ khác (rất nhiều file) có block đó.?

 

Ngóng giải đáp của các bạn.

 

Thanks.

 


  • 0

#2 dinhvantrang

dinhvantrang

    biết lệnh copy

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

Đã gửi 11 October 2016 - 07:10 AM

giải pháp của mình: Tạo một Block cần thiết với các Attributes sau đó copy các giá trị attributes từ block cũ vào block mới. Chạy hàng loạt cho tất cả các files.


  • 0

Thanks and Best Regards

Skype : dinhvantrang73


#3 Bee

Bee

    biết lệnh extend

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

Đã gửi 11 October 2016 - 07:34 AM

giải pháp của mình: Tạo một Block cần thiết với các Attributes sau đó copy các giá trị attributes từ block cũ vào block mới. Chạy hàng loạt cho tất cả các files.

Nếu sửa cả rectang hoặc obj ko phải att thì update thế nào ?


  • 0

#4 minhtanx2

minhtanx2

    biết lệnh stretch

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

Đã gửi 11 October 2016 - 08:23 AM

Mình nghĩ là có thể chèn Block dưới dạng Xref


  • 0

Khi bạn tán tỉnh một cô gái đẹp, một giờ đồng hồ chẳng qua như một giây. Khi bạn ngồi trên một hòn than nóng bỏng, một giây như thể một giờ. Đó chính là tính tương đối. (Albert Einstein)


#5 tcong1191

tcong1191

    biết vẽ circle

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

Đã gửi 11 October 2016 - 08:53 AM

Nếu là block thì chúng sẽ tự cập nhật hàng loạt khi có thay đổi.

 

Cập nhật ATT cho block bạn dùng: ATTSYNC

 

Còn dùng block A để thay thế toàn bộ block B bạn dùng Express tool nhé: Dòng lệnh "Replace block with another block"


  • 0

#6 dinhvantrang

dinhvantrang

    biết lệnh copy

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

Đã gửi 11 October 2016 - 09:30 AM

Nếu sửa cả rectang hoặc obj ko phải att thì update thế nào ?

Nếu không nhầm thì mình hiểu ý bạn thế này:

Bạn có khung tên dưới dạng một Block bao gồm cả đối tượng Line, Circle,Polyline... và Attributes, bây giờ có thay đổi ở khung tên (chỉ xóa một vài đối tượng Line/Polyline hoặc gì đó) chứ không liên quan gì đến việc thay đổi attributes, và việc này dẫn đến phải update cho rất nhiều bản vẽ nên bạn cần một lisp hoặc một tool để làm cái này.

Hy vọng mình hiểu đúng ý bạn. hehe


  • 0

Thanks and Best Regards

Skype : dinhvantrang73


#7 Bee

Bee

    biết lệnh extend

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

Đã gửi 11 October 2016 - 10:10 AM

Nếu không nhầm thì mình hiểu ý bạn thế này:

Bạn có khung tên dưới dạng một Block bao gồm cả đối tượng Line, Circle,Polyline... và Attributes, bây giờ có thay đổi ở khung tên (chỉ xóa một vài đối tượng Line/Polyline hoặc gì đó) chứ không liên quan gì đến việc thay đổi attributes, và việc này dẫn đến phải update cho rất nhiều bản vẽ nên bạn cần một lisp hoặc một tool để làm cái này.

Hy vọng mình hiểu đúng ý bạn. hehe

Khung tên chỉ là một ví dụ dễ hình dung nhất. Thường thì là sử dụng xref. Thay đổi khung cũng đơn giản.

 

Ví dụ phức tạp hơn 1 chút: đó là tag cửa. Công trình nhiều tầng chẳng hạn.

Block tag cửa thường là chỉ có 2 tag: tag tên cửa và tag kích thước cửa. Các bản vẽ đều có hết tag cửa rồi.  Bây giờ CDT yêu cầu thêm thông tin bậu cửa sổ cách sàn bao nhiêu (thường là 900 chẳng hạn) và cửa đi sẽ là 0. Rồi bây giờ sẽ phải sửa toàn bộ tag cửa thêm 1 att và thay lại block mới 3 att vào toàn bộ block cũ 2att. Không tính trâu bò sửa tay ^_^. Có cách nào nhanh không ?


  • 0

#8 lohado

lohado

    biết lệnh erase

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

Đã gửi 11 October 2016 - 11:54 AM

Khung tên chỉ là một ví dụ dễ hình dung nhất. Thường thì là sử dụng xref. Thay đổi khung cũng đơn giản.

 

Ví dụ phức tạp hơn 1 chút: đó là tag cửa. Công trình nhiều tầng chẳng hạn.

Block tag cửa thường là chỉ có 2 tag: tag tên cửa và tag kích thước cửa. Các bản vẽ đều có hết tag cửa rồi.  Bây giờ CDT yêu cầu thêm thông tin bậu cửa sổ cách sàn bao nhiêu (thường là 900 chẳng hạn) và cửa đi sẽ là 0. Rồi bây giờ sẽ phải sửa toàn bộ tag cửa thêm 1 att và thay lại block mới 3 att vào toàn bộ block cũ 2att. Không tính trâu bò sửa tay ^_^. Có cách nào nhanh không ?

Bên bạn có yêu cầu tên block không được thay đổi không ?nếu ko thì bạn tạo block att từ block cũ,có tên là block2 chẳng hạn.copy vào rồi dùng lệnh blockreplace xong là oke.
nếu nhiều bản vẽ,muốn làm nhanh,b có thể viết 1 cái macro nhỏ.mỗi bản vẽ chỉ cần copy block mới vào xong kick macro cái là xong luôn.


  • 0

    146106_untitled444_2.png


#9 dinhvantrang

dinhvantrang

    biết lệnh copy

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

Đã gửi 11 October 2016 - 10:42 PM

Khung tên chỉ là một ví dụ dễ hình dung nhất. Thường thì là sử dụng xref. Thay đổi khung cũng đơn giản.

 

Ví dụ phức tạp hơn 1 chút: đó là tag cửa. Công trình nhiều tầng chẳng hạn.

Block tag cửa thường là chỉ có 2 tag: tag tên cửa và tag kích thước cửa. Các bản vẽ đều có hết tag cửa rồi.  Bây giờ CDT yêu cầu thêm thông tin bậu cửa sổ cách sàn bao nhiêu (thường là 900 chẳng hạn) và cửa đi sẽ là 0. Rồi bây giờ sẽ phải sửa toàn bộ tag cửa thêm 1 att và thay lại block mới 3 att vào toàn bộ block cũ 2att. Không tính trâu bò sửa tay ^_^. Có cách nào nhanh không ?

okie, gửi bản vẽ lên để mình test thử nhé.


  • 0

Thanks and Best Regards

Skype : dinhvantrang73


#10 Bee

Bee

    biết lệnh extend

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

Đã gửi 14 October 2016 - 11:18 PM

Bản vẽ thì ko cần. Bạn tạo 1 block 2 att. Copy sang nhieu file. Xong rồi thử sửa 1 block trg 1 file rồi chạy tool up các block ở các bv khác thôi. :)
  • 0

#11 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 673 Bài viết
Điểm đánh giá: 315 (khá)

Đã gửi 15 October 2016 - 12:35 AM

Với trình của Mr. Been chắc là có ý đố người khác.


  • 0

#12 Bee

Bee

    biết lệnh extend

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

Đã gửi 15 October 2016 - 07:01 AM

Với trình của Mr. Been chắc là có ý đố người khác.

Ý đồ Mr.Been rõ thế còn gì: chưa nghĩ dc giải pháp nào để update block cho nhiều file nên hóng cách nào làm được.  <_<


  • 0

#13 lohado

lohado

    biết lệnh erase

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

Đã gửi 15 October 2016 - 08:23 AM

Mình nghĩ cách mình làm cũng khá nhanh rồi.Copy block,sau đó vào từng bản vẽ chỉ cần Ctrl+V và 1 click.ngồi đợi cao kiến của các bác :)


  • 0

    146106_untitled444_2.png


#14 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 673 Bài viết
Điểm đánh giá: 315 (khá)

Đã gửi 15 October 2016 - 09:34 AM

Ý đồ Mr.Been rõ thế còn gì: chưa nghĩ dc giải pháp nào để update block cho nhiều file nên hóng cách nào làm được.  <_<

Nếu dùng lisp thì mình sẽ làm cách này (Đã có sẵn Block mới - có basepoint giống Block cũ - Tên Blk mới và cũ khác nhau):

1- Mở file BV, load block mới vào file

2- Quét tất BLK cũ lấy thông tin cần thiết (VD: Insertpoint, Rotation, Scale... List Attribute...)

3- Xóa block cũ, chèn Block mới tại điểm chèn của block cũ

4- Update các dữ liệu lấy ở trên lên block mới. (từ bước 2 đến bước 4 này giống lệnh blockreplace mà lohado đã nói ở trên)

5- Nếu cần thiết: (không thì thôi)

    a. Delete block cũ trong Record Table.

    b. Rename tên blk mới thành tên blk cũ.


  • 1

#15 dinhvantrang

dinhvantrang

    biết lệnh copy

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

Đã gửi 15 October 2016 - 10:48 AM

Nếu dùng lisp thì mình sẽ làm cách này (Đã có sẵn Block mới - có basepoint giống Block cũ - Tên Blk mới và cũ khác nhau):

1- Mở file BV, load block mới vào file

2- Quét tất BLK cũ lấy thông tin cần thiết (VD: Insertpoint, Rotation, Scale... List Attribute...)

3- Xóa block cũ, chèn Block mới tại điểm chèn của block cũ

4- Update các dữ liệu lấy ở trên lên block mới. (từ bước 2 đến bước 4 này giống lệnh blockreplace mà lohado đã nói ở trên)

5- Nếu cần thiết: (không thì thôi)

    a. Delete block cũ trong Record Table.

    b. Rename tên blk mới thành tên blk cũ.

Good solution


  • 0

Thanks and Best Regards

Skype : dinhvantrang73


#16 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 15 October 2016 - 11:54 AM

Hy vọng tool "Chạy lisp trên nhiều bản vẽ không mở" này sẽ giúp bạn Bee.

http://www.mediafire...un_Lsp_Dwgs.png

http://www.mediafire...un_Lsp_Dwgs.zip


Bài viết đã được chỉnh sửa nội dung bởi Doan Van Ha: 16 October 2016 - 05:54 PM

  • 0

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

Bee

    biết lệnh extend

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

Đã gửi 15 October 2016 - 01:08 PM

Nếu dùng lisp thì mình sẽ làm cách này (Đã có sẵn Block mới - có basepoint giống Block cũ - Tên Blk mới và cũ khác nhau):

1- Mở file BV, load block mới vào file

2- Quét tất BLK cũ lấy thông tin cần thiết (VD: Insertpoint, Rotation, Scale... List Attribute...)

3- Xóa block cũ, chèn Block mới tại điểm chèn của block cũ

4- Update các dữ liệu lấy ở trên lên block mới. (từ bước 2 đến bước 4 này giống lệnh blockreplace mà lohado đã nói ở trên)

5- Nếu cần thiết: (không thì thôi)

    a. Delete block cũ trong Record Table.

    b. Rename tên blk mới thành tên blk cũ.

Ok, mình sẽ tham khảo các bước này.

 

Thanks.


  • 0

#18 Bee

Bee

    biết lệnh extend

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

Đã gửi 15 October 2016 - 01:15 PM

Hy vọng tool "Chạy lisp trên nhiều bản vẽ không mở" này sẽ giúp bạn Bee.

http://www.mediafire...un_Lsp_Dwgs.png

http://www.mediafire...un_Lsp_Dwgs.zip

Thanks  Ha,

 

Đây cũng là ý tưởng hay, dể dùng chung cho các lisp. Mình hay viết riêng script hoặc DBX cho từng lệnh mà không nghĩ ra cách này. Good idea.

 

Với lisp của Ha (Hà, Hạ, HHHHH....^_^) mình chạy thử lisp test đi kèm thì vẫn chưa run đc script.

Lần đầu thì báo: ; error: bad argument type: stringp nil

 

Lần sau : "Run_Lsp_Dwgs.scr": Can't find file.

 

Mặc dù đã chọn các file trong list file bên phải, file lisp thì chọn lisp test đi kèm, tên hàm thì gán: C:test.

 

Không biết fix lỗi kiểu nào.?


  • 0

#19 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 15 October 2016 - 05:40 PM

Có lẽ tôi đã chép nhầm file (?). Đã chép lại và đã down thử rồi (vẫn ở trên). Như trong file "Lisp_test.lsp" thì bạn phải nhập là TEST hoặc (C:TEST). Trong file word đã có hướng dẫn.


  • 0

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


#20 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 673 Bài viết
Điểm đánh giá: 315 (khá)

Đã gửi 16 October 2016 - 04:34 PM

@Bác Hạ: vẫn "Run_Lsp_Dwgs.scr": Can't find file. Sau một lúc tự kiếm tìm trong máy thì thấy nó nằm trong thư mục chứa bản vẽ hiện hành. => Cad or lisp nó kém hơn mình, mình tìm được mà nó thì lại không :D​.

P/s: - Bác cho lisp nó write file "Run_lsp_Dwgs.scr" vào thư mục mà "Support File search path" mới "nuột".

       - Nếu bổ sung cho lisp ghi nhớ path khi chọn file.dwg và .lsp thì "nuột" hơn.


  • 0