Hỏi về cách lựa chọn font khi dùng VBA trong CAD

Liên hệ QC

luongtuananh83

Thành viên mới
Tham gia
27/12/07
Bài viết
19
Được thích
0
Chào các bạn! Mình hiện đang viết một ứng dụng sử dụng ngôn ngữ VBA trên nền CAD. Mình gặp 1 vướng mắc sau. Mình muốn add một số text lên bản vẽ. Tuy nhiên mình muốn thể hiển chúng bằng nhiều dạng font khác nhau. VD: text1 dùng font: vntime, text2 dùng font: arian.... Mình sử dụng câu lệnh: AcadDoc.ActiveTextStyle.SetFont ".vntime", False, False, 28, 28 thì nó lại mặc định kiểu font cho toàn bộ text trên bản vẽ. Mong các bạn giúp: mình có thể dùng câu lệnh gì? xin cho ví dụ code cụ thể. Thanks
 
Tốt nhất là bạn tạo ra nhiều kiểu font như VNC ở dưới đây:

Mã:
Sub TaoStyleName()
    Dim TaoStyle As AcadTextStyle
    
    Set TaoStyle = ActiveDocument.TextStyles.Add("VNC")
    TaoStyle.SetFont ".VnArial", False, False, 0, 34

End Sub

Sau đó dùng phương thức StyleName để gán cho một object là text (ví dụ CaodolopT):

CaodolopT.StyleName = "VNC"
CaodolopT.ScaleFactor = 0.95
 
Upvote 0
Hoặc cách nhanh, đơn giản, & hay khác :

Là bạn tạo File template chứa sẵn các textstyle (có tên kiểu fon ... định nghĩa trước)-> khi chạy VBA sẽ lấy tạo file mới từ file template này -> chỉ cần viết lệnh VBA sử dụng các style này

Cách này ko chỉ áp dụng cho font text style mà còn có thể cho niều thứ khác như Layer, DimStyle,...

chúc thành công
 
Upvote 0
Khi tôi thực hiện đoạn code dưới đây thì bị báo lỗi sau: chưa Set đối tượng. (object variable or with block variable not set). Xin hỏi tôi phải sửa như thế nào? Thanks
Dim Font_VnArialH As AcadTextStyle
Dim textObj As AcadText
Dim textString As String
Dim insertionPoint(0 To 2) As Double

Set Font_VnArialH = AcadDoc.TextStyles.Add("Font_VnArialH")
Font_VnArialH.SetFont ".VnArialH", False, False, 0, 34

textString = "B¶n VÏ Sè"
insertionPoint(0) = 0: insertionPoint(1) = 0: insertionPoint(2) = 0
Set textObj = AcadDoc.ModelSpace.AddText(textString, insertionPoint, height)
textObj.Layer = "Bang_khung_cty"
textObj.StyleName = "Font_VnArialH"
textObj.ScaleFactor = 1
textObj.Color = acGreen
textObj.Update
 
Upvote 0
Tôi đã sửa được lỗi ở trên. Nhưng lại gặp một lỗi khác, mong các bạn chỉ giúp. Với những font có sẵn của win (như .vntime....) thi ok, tuy nhiên với những font dạng .shx của Acad (vd như simli.shx...) thì bị báo lỗi: "Invalid input". Xin hỏi phải sửa ntn? thanks
 
Upvote 0
luongtuananh83 đã viết:
Tôi đã sửa được lỗi ở trên. Nhưng lại gặp một lỗi khác, mong các bạn chỉ giúp. Với những font có sẵn của win (như .vntime....) thi ok, tuy nhiên với những font dạng .shx của Acad (vd như simli.shx...) thì bị báo lỗi: "Invalid input". Xin hỏi phải sửa ntn? thanks

Lỗi đó là do mấy font đó chưa đăng ký với Windows, bạn chỉ cần copy vào trong thư mục:


là OK! ngày thôi. :-=
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom