NX Lab

Tạo ghi chú (Note) trên bản vẽ bằng AnnotationManager.CreateNote với font và cỡ chữ

#Python#Drafting#Note1 lượt xem

  1. Quản trị viênQuản trị· 0 điểm

    Câu hỏi ·

    Ghi chú kỹ thuật như 'Bavia tù cạnh 0.3' hay 'Vật liệu: S45C' lặp lại trên mọi bản vẽ. Script thêm chúng đúng vị trí và đúng cỡ chữ theo chuẩn.

    Tạo ghi chú (Note) trên bản vẽ bằng… Tạo ghi chú (Note) trên bản vẽ bằng…

    Các bước thực hiện

    1. Chuẩn bị nội dung. Danh sách các dòng chữ.
    2. Lấy tùy chọn chữ. part.Annotations.Preferences.GetLetteringPreferences(), đặt cỡ chữ.
    3. Tạo tùy chọn ký hiệu. NewUserSymbolPreferences.
    4. Gọi CreateNote. Truyền dòng chữ, điểm đặt, hướng, hai bộ tùy chọn.
    5. Kiểm tra. Đọc lại Note và đặt tên.

    Code tham khảo (Python)

    import NXOpen
    
    def tao_ghi_chu(part, cac_dong, x, y, co_chu=3.5):
        ann = part.Annotations
        chu = ann.Preferences.GetLetteringPreferences()
        ghi = chu.GetGeneralText()
        ghi.Size = co_chu
        chu.SetGeneralText(ghi)
        ky_hieu = ann.NewUserSymbolPreferences(
            NXOpen.Annotations.UserSymbolPreferences.SizeType.ScaleAspectRatio, 1.0, 1.0)
        return ann.CreateNote(cac_dong, NXOpen.Point3d(x, y, 0.0),
                              NXOpen.AxisOrientation.Horizontal, chu, ky_hieu)
    
    def main():
        session = NXOpen.Session.GetSession()
        lw = session.ListingWindow
        lw.Open()
        part = session.Parts.Work
        if part is None:
            return
        session.SetUndoMark(NXOpen.Session.MarkVisibility.Visible, "Ghi chu")
        note = tao_ghi_chu(part, ["1. Vat lieu: S45C", "2. Tu cac canh 0.3 x 45", "3. Do nham chung Ra 3.2"], 20.0, 40.0)
        note.SetName("GHI_CHU_KY_THUAT")
        lw.WriteLine("Đã tạo ghi chú: " + note.Name)
    
    if __name__ == "__main__":
        main()
    

    Giải thích code

    • Lớp LetteringPreferences chứa nhiều loại chữ; GetGeneralText() / SetGeneralText() đọc và ghi bộ chữ chung.
    • Dòng chữ nên dùng ký tự không dấu hoặc kiểm tra font tiếng Việt trước, vì một số font NX không hiển thị dấu.
    • AxisOrientation.Horizontal đặt chữ nằm ngang.

    Lỗi thường gặp

    • Tạo note ngoài vùng sheet đang hiển thị nên hình không thấy; kiểm tra tọa độ so với khổ giấy.
    • Cỡ chữ theo mm trên giấy, không phụ thuộc tỉ lệ view.

    Code mang tính tham khảo, viết cho NX 12 trở lên (Python journal). Tên menu và một số lớp có thể khác theo phiên bản NX; hãy chạy thử trên bản sao của chi tiết trước khi dùng cho dữ liệu thật.

    Điểm: 0

Trả lời

Đăng nhập để tham gia thảo luận.