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

Sửa định dạng font trong MTEXT

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

Chào mọi người, mình có vấn đề về text xin được giúp đỡ:

một số text của mình ví dụ sử dụng style: "chữ thường" với font là arial, nhưng khi viết text với style "chữ thường" người viết text đã đã chuyển thành vntime.

thành ra khi mình muốn thay đổi đặc tính của style: "chữ thường" bằng cách dùng lệnh ma hay sửa trong fomat thì các kiểu chữ đã viết không thay đổi, xin hỏi có cách nào khác phục đưa font vntime về nguyên bản arial

(mình cần sửa nhiều nên không thể vào từng text chọn thay đổi font được)

Xin cám ơn mọi người nhé

font1.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
Chào mọi người, mình có vấn đề về text xin được giúp đỡ:

một số text của mình ví dụ sử dụng style: "chữ thường" với font là arial, nhưng khi viết text với style "chữ thường" người viết text đã đã chuyển thành vntime.

thành ra khi mình muốn thay đổi đặc tính của style: "chữ thường" bằng cách dùng lệnh ma hay sửa trong fomat thì các kiểu chữ đã viết không thay đổi, xin hỏi có cách nào khác phục đưa font vntime về nguyên bản arial

(mình cần sửa nhiều nên không thể vào từng text chọn thay đổi font được)

Xin cám ơn mọi người nhé

font1.jpg

Bạn seach trong diễn đàn có lisp hiệu chỉnh nhiều text cùng 1 lúc đó

Chúc thành cô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
Bạn seach trong diễn đàn có lisp hiệu chỉnh nhiều text cùng 1 lúc đó

Chúc thành công

thanks, nhưng bạn ơi hiệu chỉnh đó chỉ có tác dụng khi ta make text với font đúng như style, mình có bản vẽ style với font là arial, nhưng khi make text họ đã điều chỉnh thông số thành font khác nên không dùng các cách dó được.....

Xin mọi người giúp với ah! xin up file lên và mong mọi người tìm cách đưa nó về đúng font Gulim đúng như định nghĩa của style: standard

vidu

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
thanks, nhưng bạn ơi hiệu chỉnh đó chỉ có tác dụng khi ta make text với font đúng như style, mình có bản vẽ style với font là arial, nhưng khi make text họ đã điều chỉnh thông số thành font khác nên không dùng các cách dó được.....

Xin mọi người giúp với ah! xin up file lên và mong mọi người tìm cách đưa nó về đúng font Gulim đúng như định nghĩa của style: standard

vidu

có ai giúp đc không??help

  • 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
có ai giúp đc không??help

theo mình nghĩ chỉ có cách bạn EXPLORE ra rồi sau đó bạn quét chọn hết tất cả rồi bấm CTRL+1 chỉnh!sau khi chỉnh xong mà bạn muốn nó là MTEXT lại thì bạn vào trong công cụ EXPRESS convert to MText là xong!

thâ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

Theo tui nghĩ thì không có cách nào chuyển text từ font Vn.time sang Arial được đâu.Vì: Font Arial thuộc định dạng mã của họ UnicodeVN.Time thuộc họ TCNV3.Chỉ có thể chuyển các loại text thuộc cùng một mã thôi.

Có cao thủ nào phá được bài toán này thì quả là tuyệt vờ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
Theo tui nghĩ thì không có cách nào chuyển text từ font Vn.time sang Arial được đâu.Vì: Font Arial thuộc định dạng mã của họ UnicodeVN.Time thuộc họ TCNV3.Chỉ có thể chuyển các loại text thuộc cùng một mã thôi.

Có cao thủ nào phá được bài toán này thì quả là tuyệt vời!

bạn xem cái này thử!

http://www.cadviet.com/forum/index.php?showtopic=10894

  • 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
thanks, nhưng bạn ơi hiệu chỉnh đó chỉ có tác dụng khi ta make text với font đúng như style, mình có bản vẽ style với font là arial, nhưng khi make text họ đã điều chỉnh thông số thành font khác nên không dùng các cách dó được.....

Xin mọi người giúp với ah! xin up file lên và mong mọi người tìm cách đưa nó về đúng font Gulim đúng như định nghĩa của style: standard

vidu

-Tóm lại là bạn muốn giải quyết vấn đề như nào , tôi đọc mà chưa hiểu nổi, tải file cad bạn up lên mở ra lại càng ko hiểu luôn. Bạn nói rõ hơn và cốt lõi xem nào

-Muốn convert font thì dùng lisp của A Hoành

-Muốn chỉnh nhều font thì chỉnh ở ctrl+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óm lại là bạn muốn giải quyết vấn đề như nào , tôi đọc mà chưa hiểu nổi, tải file cad bạn up lên mở ra lại càng ko hiểu luôn. Bạn nói rõ hơn và cốt lõi xem nào

-Muốn convert font thì dùng lisp của A Hoành

-Muốn chỉnh nhều font thì chỉnh ở ctrl+1

ý của mình là thế này! như bản vẽ ví dụ mình có text thuộc một style nhưng khi người ta dùng style đó lại đổi font style, nếu dùng ctrl+1 thì sửa được, nhưng chỉ sửa từng cái một được thôi, khong thể sửa đồng loạt được mình muốn đưa tất cả text trong style đó về đúng font style mặc định, ví dụ như trong ví dụ tất cả text đều là standard nhưng font mặc định mình muốn đưa về gulim chứ không phải là @Micro....

mong mọi người giúp đỡ, mìn gặp nhìu trường hợp như này rồi

còn về việc chuyển từ tcvn3 sang unicod thì không quan trọ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
thanks, nhưng bạn ơi hiệu chỉnh đó chỉ có tác dụng khi ta make text với font đúng như style, mình có bản vẽ style với font là arial, nhưng khi make text họ đã điều chỉnh thông số thành font khác nên không dùng các cách dó được.....

Xin mọi người giúp với ah! xin up file lên và mong mọi người tìm cách đưa nó về đúng font Gulim đúng như định nghĩa của style: standard

vidu

Thachphathien có thể upload 1 file và nói rõ hơn không? Nhìn vào file cũ mà bạn upload thấy mơ hồ quá. Nhưng hình như bạn đã nhầm : Bạn đang nói đến MTEXT chứ không phải là TEXT như bạn nói, phải không?

Bạn upload 1 file và viết rõ ràng được không?

Nếu trong khả năng, Tue_NV sẽ giúp

  • 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
Thachphathien có thể upload 1 file và nói rõ hơn không? Nhìn vào file cũ mà bạn upload thấy mơ hồ quá. Nhưng hình như bạn đã nhầm : Bạn đang nói đến MTEXT chứ không phải là TEXT như bạn nói, phải không?

Bạn upload 1 file và viết rõ ràng được không?

Nếu trong khả năng, Tue_NV sẽ giúp

thanks bác trước, ý của mình là thế này, như file ví dụ đó mình mặc định style stanrd là font gulim, nhưng khi vẽ mtext hoặc text(trong ví dụ là mtext thì người lập đã đổi font đó sang arial, giờ mình muốn chuyển tất cả font của style standard sang font gulin như định nghĩa, bản vẽ của mình có nhìu mtext như thế, nếu dùng cách explode thì tất cả mtext trong bản vẽ sẽ tự động chuyển về đúng như định nghĩa(tứclà style standard và font là gulim) nhưng mình muốn sau đó chuyển ngược lại mtext thì dùng convert chúng nối text thành một text tức là không phân bố khắp bản vẽ như ban đầu nữa, mà nỗi từng cặp một thì rất mất time

mong mọi người giú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
thanks bác trước, ý của mình là thế này, như file ví dụ đó mình mặc định style stanrd là font gulim, nhưng khi vẽ mtext hoặc text(trong ví dụ là mtext thì người lập đã đổi font đó sang arial, giờ mình muốn chuyển tất cả font của style standard sang font gulin như định nghĩa, bản vẽ của mình có nhìu mtext như thế, nếu dùng cách explode thì tất cả mtext trong bản vẽ sẽ tự động chuyển về đúng như định nghĩa(tứclà style standard và font là gulim) nhưng mình muốn sau đó chuyển ngược lại mtext thì dùng convert chúng nối text thành một text tức là không phân bố khắp bản vẽ như ban đầu nữa, mà nỗi từng cặp một thì rất mất time

mong mọi người giúp đỡ

Thachphathien sử dụng code này thử nhé :

(defun c:ctg(/ doc sset chuoi vitri)
;copyright by Tue_NV
 (setq ss (ssget '((0 . "*TEXT"))))
 (vl-load-com)
 (setq doc (vla-get-activedocument(vlax-get-acad-object)))
 (defun pos (sub st / l1 l2 index)
   ;Thank Mr Hoanh for this function
   (setq index	1
  l1	(strlen sub)
  l2	(strlen st)
   )
   (while
     (and (<= (+ index l1 -1) l2) (/= sub (substr st index l1)))
      (setq index (1+ index))
   )
   (if	(= sub (substr st index l1))
     index
     nil
   )
 );;;end defun POS
 ;;;Main function
 (vlax-for x (setq sset (vla-get-activeselectionset doc))
   (setq chuoi (vla-get-textstring x))
   (setq vitri (1+ (pos ";" chuoi))) 
   (vla-put-textstring x (substr chuoi vitri (- (strlen chuoi) vitri)))
 )
 (vla-delete sset)
(princ)
)

  • 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

Thachphathien sử dụng code này thử nhé :

 

(defun c:ctg(/ doc sset chuoi vitri)
;copyright by Tue_NV
(setq ss (ssget '((0 . "*TEXT"))))
(vl-load-com)
(setq doc (vla-get-activedocument(vlax-get-acad-object)))
(defun pos (sub st / l1 l2 index)
;Thank Mr Hoanh for this function
(setq index 1
l1 (strlen sub)
l2 (strlen st)
)
(while
(and (<= (+ index l1 -1) l2) (/= sub (substr st index l1)))
(setq index (1+ index))
)
(if (= sub (substr st index l1))
index
nil
)
);;;end defun POS
;;;Main function
(vlax-for x (setq sset (vla-get-activeselectionset doc))
(setq chuoi (vla-get-textstring x))
(setq vitri (1+ (pos ";" chuoi)))
(vla-put-textstring x (substr chuoi vitri (- (strlen chuoi) vitri)))
)
(vla-delete sset)
(princ)
)

Đăng nhập để like cho bạn :D . Mình hay gặp phải tình huống trong 1 Mtext có nhiều style khác nhau, phải sửa rất lâu. Tuy lisp này vẫn phải chọn từng Mtext một nhưng cũng đã nhanh hơn rất nhiều. Cám ơn bạn nhé emoji_u1f44d.pngemoji_u1f44d.pngemoji_u1f44d.png

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

Thachphathien sử dụng code này thử nhé :

 

(defun c:ctg(/ doc sset chuoi vitri)
;copyright by Tue_NV
(setq ss (ssget '((0 . "*TEXT"))))
(vl-load-com)
(setq doc (vla-get-activedocument(vlax-get-acad-object)))
(defun pos (sub st / l1 l2 index)
;Thank Mr Hoanh for this function
(setq index 1
l1 (strlen sub)
l2 (strlen st)
)
(while
(and (<= (+ index l1 -1) l2) (/= sub (substr st index l1)))
(setq index (1+ index))
)
(if (= sub (substr st index l1))
index
nil
)
);;;end defun POS
;;;Main function
(vlax-for x (setq sset (vla-get-activeselectionset doc))
(setq chuoi (vla-get-textstring x))
(setq vitri (1+ (pos ";" chuoi)))
(vla-put-textstring x (substr chuoi vitri (- (strlen chuoi) vitri)))
)
(vla-delete sset)
(princ)
)

Lỗi: sau khi dùng lisp chuỗi mất kỹ tự cuối cùng. mình ko biết sửa...

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

Hung_EL: "Lỗi: sau khi dùng lisp chuỗi mất kỹ tự cuối cùng"

Đụng đến Mtext thật không dễ chút nào. Lisp của Tue_NV còn thiếu nhiều trường hợp xảy ra trong Mtext, Thiệp gửi lisp này các bạn xem:

http://www.cadviet.com/upfiles/7/11110_tra_font_mtext.lsp

(defun acet-mtext-format-bite (str / a f1 n)

(setq a (substr str 1 2)
n 0
)
(cond
((or (= "{" (substr str 1 1))
(= "}" (substr str 1 1))
) ;or
(setq f1 (substr str 1 1)
str (substr str 2)
) ;setq
) ;cond #1
((or (= "\\P" a)
(= "\\~" a)
)
(setq f1 (substr str 1 2)
str (strcat " " (substr str 3))
n -1
)
) ;cond #2
((or (= "\\{" a)
(= "\\}" a)
(= "\\O" a)
(= "\\L" a)
(= "\\S" a)
;(= "\\\\" a)
)
(setq f1 (substr str 1 2)
str (substr str 3)
)
) ;cond #3
((or (= "\\A1" (substr str 1 3))
(= "\\A2" (substr str 1 3))
(= "\\A3" (substr str 1 3))
) ;or
(setq f1 (substr str 1 3)
str (substr str 4)
) ;setq
) ;cond #4
((or (= "\\f" a)
(= "\\C" a)
(= "\\H" a)
(= "\\T" a)
(= "\\Q" a)
(= "\\W" a)
(= "\\p" a)
)
(setq n (acet-str-find ";" str)
f1 (substr str 1 n)
str (substr str (+ n 1))
n 0
) ;setq
) ;cond #6
) ;cond close
(list f1 str n)
) ;defun acet-mtext-format-bite
(defun acet-mtext-format-extract (str / lst raw len pos frmt flst a n j lst2)
(setq lst (list "{" "}" "\\P" "\\~" "\\{"
"\\}" "\\O" "\\L" "\\S" "\\A1"
"\\A2" "\\A3" "\\f" "\\C" "\\H"
"\\T" "\\Q" "\\W" "\\p"
) ;list
raw ""
len (strlen str)
pos 0
) ;setq
(while (> (strlen str) 0)

(setq lst2 (mapcar '(lambda (x) (acet-str-find x str)) lst)
lst2 (mapcar '(lambda (x)
(if x
(list x)
x
)
)
lst2
)
lst2 (apply 'append lst2)
j (apply 'min lst2)
) ;setq
(if (/= j 0)
(progn
(setq raw (strcat raw
(substr str 1 (- j 1))
)
str (substr str j)
a (acet-mtext-format-bite str)
;; (list format str offset)
frmt (car a)
str (cadr a)
n (+ pos j)
pos (+ pos
j
(caddr a)
(- (strlen frmt) 1)
)
frmt (list frmt n)
flst (cons frmt flst)
) ;setq
(setq n (+ (length lst) 10)) ;get out of inner loop
) ;progn
(setq raw (strcat raw str)
str ""
) ;setq then get out
) ;if

) ;while
(list raw (reverse flst))
) ;defun acet-mtext-format-extract
(vl-load-com)
(defun c:ctg (/ doc sset chuoi ch lst Lst_str str_new)
(setq ss (ssget '((0 . "MTEXT"))))
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(vlax-for x (setq sset (vla-get-activeselectionset doc))
(setq chuoi (car(acet-mtext-format-extract (vla-get-textstring x))))
(vla-put-textstring x chuoi)
)
(vla-delete sset)
(princ)
)

 

Sorry, lâu ngày vô cadviet nên khi đưa lisp vào nó như 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

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


×