首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用“ezdxf”编写镜像文本?

如何使用“ezdxf”编写镜像文本?
EN

Stack Overflow用户
提问于 2019-03-27 12:32:01
回答 1查看 481关注 0票数 1

我需要用镜像的DXF绘图来写文本。我使用python和ezdxf模块。根据docs,有一些标志需要设置,但我总是得到DXFAttributeError。

我尝试使用文本_生成_标志:2和‘文本_方向’:(-1,0,0)

下面是我的代码(在没有镜像尝试的情况下工作得很好)

代码语言:javascript
复制
def publish_face_no_bolts(poly, label, filename):

    t = poly.get_default_transformation()
    trans_poly = poly.transform(t)
    # trans_poly = trans_poly.make_coordinates_positive()
    points = transformation.points_3d_to_2d(trans_poly.poly_points)
    points.append(points[0]) # must close polygon

    drawing = ezdxf.new(dxfversion='AC1024')  # or use the AutoCAD release name ezdxf.new(dxfversion='R2010')
    modelspace = drawing.modelspace()

    modelspace.add_lwpolyline(points, dxfattribs={'color': 7})

    drawing.layers.new('TEXTLAYER', dxfattribs={'color': 1})

    # use set_pos() for proper TEXT alignment - the relations between halign, valign, insert and align_point are tricky.


    # drawing.styles.new('mirrored', dxfattribs={'text_generation_flags': 2})
    # 'text_direction': (0, 1, 0),  # write in y direction
    drawing.styles.new('mirrored', dxfattribs={ 'text_direction': (-1, 0, 0)})

    err, cx, cy = polygon.centroid2d(points)

    modelspace.add_text(label, dxfattribs={'layer': 'TEXTLAYER', 'text_direction': (-1, 0, 0), 'height': 4}).set_pos((cx, cy), align='CENTER')
    drawing.saveas(filename)

使用哪个标志,以及如何正确设置它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-27 23:16:10

我没有使用ezdxf,但是text_directionMTEXT实体(DXF组11)的一个属性,也是有效控制MText旋转的另一种方法。

要镜像一个单行TEXT实体,您需要将DXF组71设置为2,在简要查看了ezdxf的代码之后,它看起来将作为text_generation_flag参数来实现。

因此,我建议:

代码语言:javascript
复制
modelspace.add_text(label, dxfattribs={'layer': 'TEXTLAYER', 'text_generation_flag': 2, 'height': 4}).set_pos((cx, cy), align='CENTER')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55377283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档