You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过pyautocad或win32com修改AutoCAD中添加文本的字体?

给AutoCAD的MTEXT设置Arial字体(pyautocad/win32com实现)

AutoCAD中文本的字体由**文字样式(TextStyle)**统一管理,无法直接为单个MTEXT对象指定字体。必须先创建使用Arial字体的自定义样式,再将MTEXT关联到该样式。

步骤1:创建Arial字体的文字样式

先检查图纸中是否已存在目标样式,避免重复创建:

# 假设acad是已连接的AutoCAD实例
doc = acad.ActiveDocument
text_styles = doc.TextStyles

# 自定义样式名称,可自行修改
target_style_name = 'Arial_Style'
style_exists = False
for style in text_styles:
    if style.Name == target_style_name:
        style_exists = True
        break

if not style_exists:
    # 添加新样式
    arial_style = text_styles.Add(target_style_name)
    # 设置Arial字体文件(系统自带的TrueType字体,AutoCAD可自动识别路径)
    arial_style.FontFile = 'Arial.ttf'
    arial_style.BigFontFile = ''  # TrueType字体无需大字体
    # 可选:预设样式的默认高度,也可在MTEXT中单独设置
    arial_style.Height = 1.5

步骤2:修改MTEXT代码关联样式

在原代码中添加StyleName属性赋值,指定刚创建的自定义样式:

for coordinates in gold_marker_coords:
    x, y, z, text_value = coordinates
    m_text = ms.AddMText(APoint(x + 0.8, y - 1, z), 1, str(text_value))
    m_text.Height = 1.5
    m_text.Layer = 'Скважины'
    # 关联Arial样式
    m_text.StyleName = 'Arial_Style'

补充说明

  • 确保系统中已安装Arial字体,AutoCAD会自动读取系统字体目录,无需手动指定完整路径
  • 若使用win32com替代pyautocad,代码逻辑完全一致,仅初始化AutoCAD实例的方式不同:acad = win32com.client.Dispatch("AutoCAD.Application")
  • 可提前在AutoCAD模板文件中创建好该样式,后续代码直接指定样式名即可,无需重复创建

内容的提问来源于stack exchange,提问作者Bobby Lith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 20:35:11