Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
chikonan

thắc mắc về 2 dạng block : B và ATT

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

Mình vẫn hay dùng block B ( block đánh lệnh là "B" ) và chỉnh sửa trong hộp thoại Edit block definition rất tiện dụng.

Mình thấy trong bản vẽ có block ATT ( block đánh lệnh "ATT") , khi kích đúp vào đối tượng ra hộp thoại Enhanced Atribute Editor. Mình gặp khó khăn khi muốn đổi màu đối tượng line trong đó ( chỉ 1 số đường chứ ko phải tất cả ).

--> các bạn chỉ mình cách thực hiện đổi màu line trong Block ATT ( trường hợp trên )

--> Có thể chuyển block ATT sang block B được ko ???

 

block1.jpg

 

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

:) Block có thể bao gồm ATT hoặc không, chứ không phải ATT là 1 dạng block.Bạn có thể hiểu nôm na ATT là 1 loại text đặc biệt, có thể thay đổi linh động ngay cả khi đã block lại.

- Block có chứa đối tượng ATT có thể kích đúp vào để sửa trực tiếp nội dung của ATT, chứ không cần vào trong cửa sổ Block Editor để sửa.

- Muốn sửa các đối tượng khác trong Block ATT, bạn nhấn chuột phải để chọn Block Editor, hoặc dùng lệnh Bedit để sửa block

- Với Block bình thường, việc bạn kích đúp vào block cũng tương tự với cách làm bên trên

- Bạn vào Block chưa ATT, xóa hết các đối tượng ATT đi, thay bằng text chết bình thường thì nó sẽ là 1 Block bình thường

==> đây là cách làm đổi xe máy lấy xe đạp :)

  • 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

==> đây là cách làm đổi xe máy lấy xe đạp :)

sặc.

pác Ketxu có nhiều câu đỡ ko nổi.

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ì block của mình là đơn giản đồng bộ như nhau, không thay đổi giá trị Text nên mình đã chọn "đổi xe máy lấy xe đạp" :). Nhân đây mình cũng nhờ các bạn tư vấn cách tạo Block chứa ATT (vì mình chỉ quen tạo block B và những text thay đổi giá trị thì mình ko Block để sửa thủ công hoặc = tcount) :blush:

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ì block của mình là đơn giản đồng bộ như nhau, không thay đổi giá trị Text nên mình đã chọn "đổi xe máy lấy xe đạp" :). Nhân đây mình cũng nhờ các bạn tư vấn cách tạo Block chứa ATT (vì mình chỉ quen tạo block B và những text thay đổi giá trị thì mình ko Block để sửa thủ công hoặc = tcount) :blush:

giống như ketxu noi o trên thì ATT là một dạng text đặt biệt. khi bạn block thì chọn luôn dt là ATT (tạo ra trước đó bằng lệnh ATT) và những thứ khác cùng nhau. lúc này trong block của bạn có ATT có thể chỉnh sửa nội dung của "text đặc biệt này", cái này thì ai cũng dùng, VD như ký hiệu trục, ký hiệu cử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

sặc.

pác Ketxu có nhiều câu đỡ ko nổi.

Thời buổi giá xăng tăng cao thế này thì việc này cũng đáng làm lắm, với lại nó tốt cho môi trường lắm, mình ủng hộ!

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ại gặp 1 vấn đề phải hỏi các bạn đây: mình BEDIT block kí hiệu trục chứa đối tuợng ATT rồi scale chữ trong đó lên, sau khi làm xong thì kết quả là chữ có tăng nhưng bị đảo ngược lại. Mình sửa đơn giản thế mà sao nó ra kết quả oái oăm vậy, mình muốn có 1 kết quả bình thườ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

Sao bạn không gửi thử file kèm block cho mọi người xem, đỡ phải ngồi đoán mò hè :)

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

Ok ! đó là Block ghi tên cửa đi và cửa sổ. Lúc đầu kích thước hơi nhỏ , mình tính scale trong Block để nó cho ra kết quả 1 loạt. Nhưng ko hiểu sao bị lỗi đảo ngược và lộn ngược .

Link Mediafire file Cad: http://www.mediafire.com/?qqfw115sf75da13

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

Do bạn để Scale X của Block = -1, hãy chỉnh lại thành 1 :)

- Đúng là đổi scale X =-1 thì block đó trở về bình thường. Nhưng giá trị -1 đó ko phải do mình ghi vào đó. Mình tìm được nguyên nhân là do khi Mirror đối tượng Block chứa ATT thì Cad sẽ tự động đổi các hệ số scale X và rotation để đối tượng text trong ATT là luôn thuận chiều (dạng bình thường, ko lộn ngược chữ, ko đảo ngược chữ ).

 

- Bạn để ý là các ghi chú cửa Đ1, Đ2, Đ3, Đ4, S1, S2 đều cùng chung 1 đối tượng Block có tên là "ghi chu".

 

- Mình giải thích quá trình phát sinh lỗi đó (theo ý hiểu của mình) như sau :

Khi mình vẽ, ghi chú tên cửa có chỗ = copy, có chỗ = mirror thì

(Text ATT nguyên bản + scale X=1 ) --> chữ thuận chiều

(Text ATT mirror + scale X=-1) --> chữ vẫn thuận chiều

Sau khi mình Scale đối tượng text trong Block đó thì

(Text ATT nguyên bản + scale X=1 ) --> chữ thuận chiều

(Text ATT mirror trở về nguyên bản + scale X=-1) --> chữ đảo chiều

 

- Bây giờ mà làm thủ công đưa từng block đó về scale X=1 và rotation =0 Có vẻ không thông minh lắm .

Các bạn có sáng kiến gì 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

mình cũng gặp trường hợp khó xử này : muốn chọn chỉ hiện 1 đối tượng Block ( trong Block đó có các đối tượng ở các layer khác nhau )còn các đối tượng khác ẩn hết. Mình làm = cách chọn Block rồi Layiso thì block đó cũng mất luôn .

Bạn nào có cách xử lý trường hợp này ko ??? :)

(Lấy trường hợp Block "ghi chu" trên làm ví dụ, chỉ hiện 1 Block đó để chỉnh Scale X và rotation )

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

Nếu chỉ để đưa về Scale 1 và Rot = 0 thì có gì khó đâu ^^, dùng Qselect rồi chỉnh cũng được vậy , chỉ lưu ý là lúc đó vị trí block sẽ chạy thôi, cái nì tại hạ hok chịu trách nhiệm à nghen

(defun c:fix()
(foreach ent (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "INSERT")(2 . "ghi chu")))))))

(if (and (vlax-property-available-p ent 'XScaleFactor) (=(vlax-get-property ent 'XScaleFactor) -1))
(vlax-put-property ent 'XScaleFactor 1) )
(if (and (vlax-property-available-p ent 'Rotation) (not (=(vlax-get-property ent 'XScaleFactor) 0)))
(vlax-put-property ent 'Rotation 0))
)
)

  • 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

mình cũng gặp trường hợp khó xử này : muốn chọn chỉ hiện 1 đối tượng Block ( trong Block đó có các đối tượng ở các layer khác nhau )còn các đối tượng khác ẩn hết. Mình làm = cách chọn Block rồi Layiso thì block đó cũng mất luôn .

Bạn nào có cách xử lý trường hợp này ko ??? :)

(Lấy trường hợp Block "ghi chu" trên làm ví dụ, chỉ hiện 1 Block đó để chỉnh Scale X và rotation )

1 là dùng Qselect hoặc Fi, bạn tìm hiểu cách sử dụng trên diễn đàn

2 là dùng cố định 1 đoạn lisp để highlight các đối tượng này

3 là dùng lisp ẩn đối tượng kết hợp Qs hoặc Fi

4 là....

  • 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

Mình xài cái lisp bạn đưa (đánh lệnh fix, chọn đối tượng Block đó) mà ko đc :huh:

APPLOAD

Command: fix

Select objects: 1 found

Select objects:

Error:bad argument type: VLA-OBJECT nil; error: An error has occurred inside

the *error* functionbad argument type: fixnump: "BYLAYER"

 

Lisp đó bạn mới sáng tác ah, vì mình thấy có đoạn (0 . "INSERT")(2 . "ghi chu")

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 xài cái lisp bạn đưa (đánh lệnh fix, chọn đối tượng Block đó) mà ko đc :huh:

 

 

Lisp đó bạn mới sáng tác ah, vì mình thấy có đoạn (0 . "INSERT")(2 . "ghi chu")

Srr bạn, mình thiếu cái dấu ngoặc, đã fix lại ở bài trên , bạn lấy lại nhé.

Đỏ : ừh :)

  • 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

Đăng nhập để thực hiện theo  

×