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

Có thể tạo "block động" được không?

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

Khi tạo một block có thuộc tính, mình có thể di chuyển text chứa thuộc tính đến vị trí bất kỳ. Mình không biết có thể tạo cái block mà có thể di chuyển (chứ không phải là hiệu chính) một nhóm đối tượng bên trong nó được hay không? Bạn nào biết xin chỉ giúp. Cám ơn

(Mình tạm gọi nó là block động). Hình minh họa :

block_dong.bmp

  • 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 block không đặt tên, Để khỏi phải quản lý.

Trích dẫn(Nguyen Hoanh @ Jan 31 2007, 12:58 PM)

Nếu bạn muốn tạo một anonymous block (là block không có tên) trong bản vẽ bạn chỉ cần copy các đối tượng mà bạn muốn tạo block bằng cách dùng tổ hợp phím Ctr+C, sau đó dùng lệnh PasteBlock.

 

Với block tạo bằng phương pháp này, bạn không cần phải quản lý block (thật ra là không quản lý được). Khi bạn xóa đối tượng này, ACAD tự động Purge các anonymous block ra khỏi block table sau mỗi lần mở file.

 

 

 

Bác thử dùng Block ko đặt tên xem rất tiện lợi cho công việc của bác.

Nhanh hơn cả block đặt tên

  • 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
Tạo block không đặt tên, Để khỏi phải quản lý.

Trích dẫn(Nguyen Hoanh @ Jan 31 2007, 12:58 PM)

Nếu bạn muốn tạo một anonymous block (là block không có tên) trong bản vẽ bạn chỉ cần copy các đối tượng mà bạn muốn tạo block bằng cách dùng tổ hợp phím Ctr+C, sau đó dùng lệnh PasteBlock.

 

Với block tạo bằng phương pháp này, bạn không cần phải quản lý block (thật ra là không quản lý được). Khi bạn xóa đối tượng này, ACAD tự động Purge các anonymous block ra khỏi block table sau mỗi lần mở file.

Bác thử dùng Block ko đặt tên xem rất tiện lợi cho công việc của bác.

Nhanh hơn cả block đặt tên

Thật ra là mình muốn chèn cái block vào những vị trí khác nhau, mỗi lần chèn thì các giá trị text sẽ thay đổi (theo kiểu block có thuộc tính). Tuy nhiên, nếu cái vòng tròn màu trắng và các đối tượng trong nó đè lên các đối tượng khác của bản vẽ thì mình sẽ di chuyển nó đi chỗ khác trong khi đó cái tâm của đg tròn màu vàng (chính là điểm insert cái block) thì đứng yên vì điểm insert đòi hỏi chính xác về tọa độ.

  • 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
Thật ra là mình muốn chèn cái block vào những vị trí khác nhau, mỗi lần chèn thì các giá trị text sẽ thay đổi (theo kiểu block có thuộc tính). Tuy nhiên, nếu cái vòng tròn màu trắng và các đối tượng trong nó đè lên các đối tượng khác của bản vẽ thì mình sẽ di chuyển nó đi chỗ khác trong khi đó cái tâm của đg tròn màu vàng (chính là điểm insert cái block) thì đứng yên vì điểm insert đòi hỏi chính xác về tọa độ.

 

Chả biết diễn đạt tnào cho dễ hiểu, đành nói hơi dài dòng thế này:

Bạn tạo Text bằng lệnh ATT sau đó block lại. Sau đó bạn dùng lệnh Bedit để setup các thuộc tính cho Block đó. Vào thẻ "Parameters" bạn chọn "Point Parameters" và pick vào tâm vòng tròn chứa chữ mf bạn muốn di chuyển. Tiếp thep bạn kích đúp vào và chọn thuộc tính STRETCH sau đó bạn khoanh vùng chọn vào khu vực đường tròn cần di chuyển và đầu đường line phía đường tròn. cuối cùng là "close block editor" và thử kết quả. :(

  • Vote tăng 2

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
Thật ra là mình muốn chèn cái block vào những vị trí khác nhau, mỗi lần chèn thì các giá trị text sẽ thay đổi (theo kiểu block có thuộc tính). Tuy nhiên, nếu cái vòng tròn màu trắng và các đối tượng trong nó đè lên các đối tượng khác của bản vẽ thì mình sẽ di chuyển nó đi chỗ khác trong khi đó cái tâm của đg tròn màu vàng (chính là điểm insert cái block) thì đứng yên vì điểm insert đòi hỏi chính xác về tọa độ.

Về cơ bản thì vẫn làm được bình thường với điều kiện Block động này phải chưa được "kéo text đi vị trí khác". Vì nếu "kéo text đi vị trí khác" thì block động đó đã đổi tên (2 . "*gì đó") và bạn không dùng lisp để tác động với block này như bình thường được nữa. Cách làm cái này thêm 1 bước so với block thông thường là cho text trong block có thuộc tính move.

  • Vote tăng 2

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
Khi tạo một block có thuộc tính, mình có thể di chuyển text chứa thuộc tính đến vị trí bất kỳ. Mình không biết có thể tạo cái block mà có thể di chuyển (chứ không phải là hiệu chính) một nhóm đối tượng bên trong nó được hay không? Bạn nào biết xin chỉ giúp. Cám ơn

(Mình tạm gọi nó là block động). Hình minh họa :

block_dong.bmp

 

Mình làm thử 1 block đây, bạn thử down về dùng xem có đúng ý bạn không:

http://www.cadviet.com/upfiles/Block1.dwg

  • 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
Về cơ bản thì vẫn làm được bình thường với điều kiện Block động này phải chưa được "kéo text đi vị trí khác". Vì nếu "kéo text đi vị trí khác" thì block động đó đã đổi tên (2 . "*gì đó") và bạn không dùng lisp để tác động với block này như bình thường được nữa. Cách làm cái này thêm 1 bước so với block thông thường là cho text trong block có thuộc tính move.

Mình muốn tạo block không những chỉ di chuyển text mà di chuyển một nhóm đối tượng thuộc block. Quá trình di chuyển chỉ thực hiện sau khi đã chèn block vào bản vẽ. Cách thức di chuyển giống di chyển text trong block có thuộc tính nhưng đây là một nhóm đối tượng

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
Mình muốn tạo block không những chỉ di chuyển text mà di chuyển một nhóm đối tượng thuộc block. Quá trình di chuyển chỉ thực hiện sau khi đã chèn block vào bản vẽ. Cách thức di chuyển giống di chyển text trong block có thuộc tính nhưng đây là một nhóm đối tượng

Mình đã làm chương trình HS của hài hòa nên hiểu ý muốn của bạn.

Theo mình thì làm việc này trên cad bằng block là không thể.

 

#Mình đã không xem bài viết bên trên của bạn abcd. cái block đó đáp ứng được yêu cầu rồi đấy.

@tdvn bạn load không được thì copy đường link đó ném lên thanh address là được.

  • 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
Mình làm thử 1 block đây, bạn thử down về dùng xem có đúng ý bạn không:

http://www.cadviet.com/upfiles/Block1.dwg

mình đã down về và dùng thử, chắc là đúng y của bạn ấy rồi, bạn có thể chia sẽ thông tin cho anh em dc ko vậy

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
Mình làm thử 1 block đây, bạn thử down về dùng xem có đúng ý bạn không:

http://www.cadviet.com/upfiles/Block1.dwg

Cái Block của bạn hay thiệt, khi mọi người hỏi mình nghĩ là không làm được thế mà bạn lại làm được, cảm ơn bạn nhiều nha!

Bạn có thể chia sẻ cách làm với mọi người không?

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ái Block của bạn hay thiệt, khi mọi người hỏi mình nghĩ là không làm được thế mà bạn lại làm được, cảm ơn bạn nhiều nha!

Bạn có thể chia sẻ cách làm với mọi người không?

 

Mình dùng lệnh BEDIT, trong đó bạn có thể thêm vào cho một số nhóm đối tượng hoặc tất cả các đối tượng trong block các tuỳ biến như Mirro, rotate, move, scale, array.....ban có thể tự tìm hiểu các thuộc tính đó rất dễ hiểu.

Riêng với block này thì mình tạo chữ bằng lệnh ATT sau đó tạo Block để có thể tuỳ chỉnh được đối với từng Block mà ko cần phải REFEDIT và ko ảnh hưởng tới các bloc khác. Mình chỉ dùng mỗi 1 tuỳ biến đó là STRETCH, kết hợp với lệnh WIPEOUT để che đoạn thẳng nằm trong khu vực đường tròn di chuyển, như vậy đoạn thẳng dẫn từ point ra đường tròn luôn hướng tâm.

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
Mình dùng lệnh BEDIT, trong đó bạn có thể thêm vào cho một số nhóm đối tượng hoặc tất cả các đối tượng trong block các tuỳ biến như Mirro, rotate, move, scale, array.....ban có thể tự tìm hiểu các thuộc tính đó rất dễ hiểu.

Riêng với block này thì mình tạo chữ bằng lệnh ATT sau đó tạo Block để có thể tuỳ chỉnh được đối với từng Block mà ko cần phải REFEDIT và ko ảnh hưởng tới các bloc khác. Mình chỉ dùng mỗi 1 tuỳ biến đó là STRETCH, kết hợp với lệnh WIPEOUT để che đoạn thẳng nằm trong khu vực đường tròn di chuyển, như vậy đoạn thẳng dẫn từ point ra đường tròn luôn hướng tâm.

Cám ơn bạn, nhưng ý mình muốn lúc thì thế này lúc thế khác và nhiều nữa trên cùng bản vẽ mà block nguyên thủy vẫn không đổi. Trong đó các chữ 123, 456, A có thể nhập vào trong khi chèn hoặc hiệu chỉnh sau khi chèn

block_dong_2.bmp

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 đã dùng thử Block của mình chưa? Mình thấy Block này đáp ứng được tất cả những điều bạn ghi ở trên mà. Bạn hoàn toàn có thể nhập các chữ ở dòng1, dòng 2, A khi bạn chèn block này vào hoặc hiệu chỉnh các chữ này bất kỳ khi nào bạn muốn.

http://http://www.cadviet.com/upfiles/anh__.jpg

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 đã dùng thử Block của mình chưa? Mình thấy Block này đáp ứng được tất cả những điều bạn ghi ở trên mà. Bạn hoàn toàn có thể nhập các chữ ở dòng1, dòng 2, A khi bạn chèn block này vào hoặc hiệu chỉnh các chữ này bất kỳ khi nào bạn muốn.

http://http://www.cadviet.com/upfiles/anh__.jpg

Lạ thật! Mình đã down về và đã thử trên cad2008. Khi dùng lệnh insert và chọn block1 thì nó chỉ insert như một block bình thường, Không hỏi nhập các trị 123, 456, hay A gì cả. Thậm chỉ sử dụng bedit xong, nếu save lại thì tất cả block trên bản vẽ đổi thay đổi. Có lẽ mình dùng sai gì chăng. Bạn có thể hướng dẫn cách insert thế nào và bạn có thể post cái file bạn đã insert cho mình tham khảo với. Cám ơn 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

Mình làm đc rồi. Lúc đầu mình insert cả file block1 nên không đc. Sau đó mình mở file block1 và insert cái block "1" thì đc. Hay quá! Không biết bạn đọc cái kiến thức này ở đâu ra vậy. Chỉ cho mình nghiên cứu với nhé. Mình có thể làm tiếp cái lisp cho bạn khaosat2009 đc rối. Cảm ơn bạn nhiều nhé.

Cho mình hỏi thêm. Mình cũng chưa thạo cái phương pháp của bạn, muốn cho bản gốc nó nhỏ xuống 100 lần thì làm thế nào?

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
Mình làm đc rồi. Lúc đầu mình insert cả file block1 nên không đc. Sau đó mình mở file block1 và insert cái block "1" thì đc. Hay quá! Không biết bạn đọc cái kiến thức này ở đâu ra vậy. Chỉ cho mình nghiên cứu với nhé. Mình có thể làm tiếp cái lisp cho bạn khaosat2009 đc rối. Cảm ơn bạn nhiều nhé.

Cho mình hỏi thêm. Mình cũng chưa thạo cái phương pháp của bạn, muốn cho bản gốc nó nhỏ xuống 100 lần thì làm thế nào?

 

mình vào mục Help của cad để tìm hiểu thôi.

Công chỉnh lại Block đó bằng công làm Block mới nên mình đã làm 1 Block mới với tỷ lệ 1-1 (tương đương với việc scale block cũ xuống 100 lần):

http://www.cadviet.com/upfiles/Block1_tl1_1.dwg

  • 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 block không đặt tên, Để khỏi phải quản lý.

Trích dẫn(Nguyen Hoanh @ Jan 31 2007, 12:58 PM)

Nếu bạn muốn tạo một anonymous block (là block không có tên) trong bản vẽ bạn chỉ cần copy các đối tượng mà bạn muốn tạo block bằng cách dùng tổ hợp phím Ctr+C, sau đó dùng lệnh PasteBlock.

 

Với block tạo bằng phương pháp này, bạn không cần phải quản lý block (thật ra là không quản lý được). Khi bạn xóa đối tượng này, ACAD tự động Purge các anonymous block ra khỏi block table sau mỗi lần mở file.

Bác thử dùng Block ko đặt tên xem rất tiện lợi cho công việc của bác.

Nhanh hơn cả block đặt tên

 

:s_big: cho mình hỏi tạo block bằng phương pháp này ,làm thế nào để kết hợp với me để làm các thao tác array ,vì câu lệnh yêu cầu tên của block?

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
:s_big: cho mình hỏi tạo block bằng phương pháp này ,làm thế nào để kết hợp với me để làm các thao tác array ,vì câu lệnh yêu cầu tên của block?

Tạo Block theo cách trên là không cần đặt tên, nhưng bản thân của Block đó nó mang 1 cái tên. Có điều cái tên này hơi dài và khó nhớ. Bạn cũng có thể sử dụng cái tên này trong lệnh ME và lệnh DIV

 

Bạn có thể kích chọn Block này -> Bấm phím Ctrol+1 -> sẽ thấy tên của nó ỡ nhãn Misc. Dưới chữ Misc có chữ Name +> Đó chính là tên của Block

 

Hoặc bạn dùng cái này sẽ thấy được tên của Block :

 

(alert(strcat "Ten Block la : " (cdr(assoc 2 (entget(car(entsel)))))))

 

:s_big:

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 Block theo cách trên là không cần đặt tên, nhưng bản thân của Block đó nó mang 1 cái tên. Có điều cái tên này hơi dài và khó nhớ. Bạn cũng có thể sử dụng cái tên này trong lệnh ME và lệnh DIV

 

Bạn có thể kích chọn Block này -> Bấm phím Ctrol+1 -> sẽ thấy tên của nó ỡ nhãn Misc. Dưới chữ Misc có chữ Name +> Đó chính là tên của Block

 

Hoặc bạn dùng cái này sẽ thấy được tên của Block :

 

(alert(strcat "Ten Block la : " (cdr(assoc 2 (entget(car(entsel)))))))

 

:s_big:

 

:s_big: thanks tue nhìu..nhưng sao em làm thì lại bị lổi như vầy error: bad argument type: stringp nil

ah còn 1 điều nửa em thắc mắc ,mong Tue chỉ bảo ,khi tạo block như thế này ,làm sao mình xác định được điểm gốc?

  • 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
:s_big: thanks tue nhìu..nhưng sao em làm thì lại bị lổi như vầy error: bad argument type: stringp nil

ah còn 1 điều nửa em thắc mắc ,mong Tue chỉ bảo ,khi tạo block như thế này ,làm sao mình xác định được điểm gốc?

Bạn phải pick trúng đối tượng block!

  • 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
Bạn phải pick trúng đối tượng block!

sory thiệt là làm mất thời gian của mấy anh quá ,em nói chưa rỏ.ý em là ,nếu thích bắt điểm gốc tại bất kì điểm nào trên block được ko ?hay là điểm này là mặc định ?

xin anh cho ý kiến .. :s_big:

  • 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

×