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

Làm cân đối lại Text khi Scale 1 chiều ??

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

Mình dùng phần mềm Nova để chạy ra trắc dọc tuyến nhưng lại để tỉ lệ cao/dài =2/1.Bây giờ mình muốn để lại tỉ lệ 1/1 mà không muốn chạy lại Nova vì rất mất công(phải vạch tuyến, chạy td, vẽ đường đỏ, đường cong,....) nên mình Block cái trắc dọc đó rồi Scale theo một chiều y với tỉ lệ 0.5 => Kích thước cao thì đã ok nhưng phát sinh vấn đề là text và số không còn cân đối nữa do đã bị scale chỉ theo một chiều nên trông rất xấu.

tdham-1.png

Bạn nào có cách giải quyết giúp mình cho chữ cân đối trở lại.Thanks!!

File Cad của mình đây:http://www.cadviet.com/upfiles/2/tdham.dwg

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 phần mềm Nova để chạy ra trắc dọc tuyến nhưng lại để tỉ lệ cao/dài =2/1.Bây giờ mình muốn để lại tỉ lệ 1/1 mà không muốn chạy lại Nova vì rất mất công(phải vạch tuyến, chạy td, vẽ đường đỏ, đường cong,....) nên mình Block cái trắc dọc đó rồi Scale theo một chiều y với tỉ lệ 0.5 => Kích thước cao thì đã ok nhưng phát sinh vấn đề là text và số không còn cân đối nữa do đã bị scale chỉ theo một chiều nên trông rất xấu.

Bạn nào có cách giải quyết giúp mình cho chữ cân đối trở lại.Thanks!!

File Cad của mình đây:http://www.cadviet.com/upfiles/2/tdham.dwg

Chọn tất cả các text vào bảng PROPERTIES chỉnh width factor bằng 1 là ok.

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
Chọn tất cả các text vào bảng PROPERTIES chỉnh width factor bằng 1 là ok.

Nếu làm như bạn nói thì chữ sẽ to trở lại trong khi khung hình bao chữ đã được thu bé lại nên chữ sẽ chèn lên cả khung hình.Mình muốn scale text lại cho nó thu nhỏ nốt chiều kia lại, tức là đã scale chiều rộng chữ với tỉ số 0.5 rồi bh muốn scale chiều cao với tỉ số 0.5 nữa.Với lại chỉnh từng chữ như thế lâu quá tại vì rất nhiều text, có cách nào chỉnh luôn trong Text Style không? Mình vào đó chỉnh lại nhưng không có tác dụ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
Nếu làm như bạn nói thì chữ sẽ to trở lại trong khi khung hình bao chữ đã được thu bé lại nên chữ sẽ chèn lên cả khung hình.Mình muốn scale text lại cho nó thu nhỏ nốt chiều kia lại, tức là đã scale chiều rộng chữ với tỉ số 0.5 rồi bh muốn scale chiều cao với tỉ số 0.5 nữa.Với lại chỉnh từng chữ như thế lâu quá tại vì rất nhiều text, có cách nào chỉnh luôn trong Text Style không? Mình vào đó chỉnh lại nhưng không có tác dụng!

Các chữ của bạn viết theo phương X :

-> Chiều cao chữ tăng 2 lần -> độ rộng chữ giảm 2 lần

 

Các chữ của bạn viết theo phương Y :

-> Chiều cao chữ giảm 2 lần -> độ rộng chữ tăng 2 lần

 

Cái này do bạn đã scale 1 chiều theo phương Y với tỉ lệ 0.5

 

Nếu thấy chiều cao chữ hơi nhỏ -> Bạn có thể tăng lên 1 chút cho phù hợp

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
Nhưng mà tăng thế nào bạn?mình chỉnh trong text manager nhưng mà không có tác dụng.

Bạn có thể sử dụng lệnh MO -> Bảng Properties để chỉnh. Nhưng nếu quá nhiều thì có thể sử dụng code Lisp sau :

(defun c:thw(/ as doc schx scwx schy scwy)
 (vl-load-com)
 (setq ss (ssget '((0 . "*TEXT"))))
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (setq schx (getreal "\n he so tang chieu cao cua chu theo phuong X :"))
 (setq scwx (getreal "\n he so tang do rong cua chu theo phuong X :"))
 (setq schy (getreal "\n he so tang chieu cao cua chu theo phuong Y :"))
 (setq scwy (getreal "\n he so tang do rong cua chu theo phuong Y :"))
 (vlax-for x (setq as (vla-get-activeselectionset doc))
   (if (= (vla-get-Rotation x) 0)
     (progn
(vlax-put x 'height (* (vla-get-height x) schx))
(vlax-put x 'scalefactor (* (vla-get-scalefactor x) scwx))
     )
   )
   (if (= (vla-get-Rotation x) (/ pi 2))
     (progn
(vlax-put x 'height (* (vla-get-height x) schy))
(vlax-put x 'scalefactor (* (vla-get-scalefactor x) scwy))
     )
   )
)
 (vla-delete as)
(princ)
)

Của bạn sử dụng như sau :

 

Command: thw -> gõ lệnh thw

Select objects: Specify opposite corner: 425 found -> Quét chọn toàn bộ đối tượng và khai báo các hệ số như dưới đây

 

Select objects:

he so tang chieu cao cua chu theo phuong X :2

 

he so tang do rong cua chu theo phuong X :0.5

 

he so tang chieu cao cua chu theo phuong Y :0.5

 

he so tang do rong cua chu theo phuong Y :2

 

Chúc thành công

  • 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 có thể sử dụng lệnh MO -> Bảng Properties để chỉnh. Nhưng nếu quá nhiều thì có thể sử dụng code Lisp sau :

(defun c:thw(/ as doc schx scwx schy scwy)
 (vl-load-com)
 (setq ss (ssget '((0 . "*TEXT"))))
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (setq schx (getreal "\n he so tang chieu cao cua chu theo phuong X :"))
 (setq scwx (getreal "\n he so tang do rong cua chu theo phuong X :"))
 (setq schy (getreal "\n he so tang chieu cao cua chu theo phuong Y :"))
 (setq scwy (getreal "\n he so tang do rong cua chu theo phuong Y :"))
 (vlax-for x (setq as (vla-get-activeselectionset doc))
   (if (= (vla-get-Rotation x) 0)
     (progn
(vlax-put x 'height (* (vla-get-height x) schx))
(vlax-put x 'scalefactor (* (vla-get-scalefactor x) scwx))
     )
   )
   (if (= (vla-get-Rotation x) (/ pi 2))
     (progn
(vlax-put x 'height (* (vla-get-height x) schy))
(vlax-put x 'scalefactor (* (vla-get-scalefactor x) scwy))
     )
   )
)
 (vla-delete as)
(princ)
)

Của bạn sử dụng như sau :

 

Command: thw -> gõ lệnh thw

Select objects: Specify opposite corner: 425 found -> Quét chọn toàn bộ đối tượng và khai báo các hệ số như dưới đây

 

Select objects:

he so tang chieu cao cua chu theo phuong X :2

 

he so tang do rong cua chu theo phuong X :0.5

 

he so tang chieu cao cua chu theo phuong Y :0.5

 

he so tang do rong cua chu theo phuong Y :2

 

Chúc thành công

lisp rất tuyệt vời, kết quả như ý muốn.Cảm ơn bạn !Nhưng mình cho mình hỏi là chữ theo phương x , phương y là phương nào hả bạn?theo trục tọa độ của cad à?bạn giải thik dùm mấy dòng lệnh

he so tang chieu cao cua chu theo phuong X :2

 

he so tang do rong cua chu theo phuong X :0.5

 

he so tang chieu cao cua chu theo phuong Y :0.5

 

he so tang do rong cua chu theo phuong Y :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
lisp rất tuyệt vời, kết quả như ý muốn.Cảm ơn bạn !Nhưng mình cho mình hỏi là chữ theo phương x , phương y là phương nào hả bạn?theo trục tọa độ của cad à?bạn giải thik dùm mấy dòng lệnh

he so tang chieu cao cua chu theo phuong X :2

 

he so tang do rong cua chu theo phuong X :0.5

 

he so tang chieu cao cua chu theo phuong Y :0.5

 

he so tang do rong cua chu theo phuong Y :2

Giải thích :

Chữ theo phương X là chữ song song với trục OX

Chữ theo phương Y là chữ song song với trục OY

 

- Khi bạn Scale 1 chiều theo phương OY theo 1 tỉ lệ K. Ví dụ ở đây bạn Scale 1 chiều theo phương OY theo tỉ lệ =0,5

Suy ra

=> chiều cao của chữ // OX giảm 2 lần -> trong khi đó độ rộng của chữ // OX giữ nguyên

=> độ rộng của chữ // OY giảm 2 lần -> trong khi đó chiều cao của chữ // OY giữ nguyên

 

Do đó : để cân đối lại thì :

=> chiều cao của chữ // OX giảm 2 lần -> trong khi đó độ rộng của chữ // OX giữ nguyên

--->>>> Phải tăng chiều cao chữ // OX lên 2 lần, nhưng khi tăng chiều cao chữ lên 2 lần thì độ rộng cũng theo đó mà tăng lên 2 lần -> do đó phải giảm độ rộng của chữ // OX 2 lần để đưa nó lại về vị trí "cân đối.

 

Lập luận tương tự như chữ // OY

 

Hãy ngẫm nghĩ thật kĩ và thật sâu đi bạn -> sẽ thấy được điều mà Tue_NV đang nói và code Lisp chạy trên đó là 1 minh chứ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ảm ơn bạn!Tăng kích thước chữ theo chiều cao thì chiều rộng sẽ tăng theo còn tăng kích thước chữ theo chiều rộng thì chiều cao lại không tăng à bạn?lisp này do bạn viết à?pro quá :cheers:

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  

×