【问题标题】:How can I edit a DXF in node.js?如何在 node.js 中编辑 DXF?
【发布时间】:2017-10-12 21:48:39
【问题描述】:

我想根据用户在网站上的输入制作自定义激光标签。我有一个模板 dxf 文件,我想用用户输入替换占位符文本。我的问题是 dxf 文件格式的文本格式非常不可读。有没有办法理解数字数据?如果没有,还有其他更容易使用的格式(svg 等)吗?

编辑:我发现它在文本方面不可读的原因是程序 (Solidworks) 将文本转换为曲线。)此时我正试图弄清楚如何防止这种情况发生。

【问题讨论】:

    标签: node.js autocad dxf


    【解决方案1】:

    AutoDesk 可以非常详细地记录 DXF 语法。花几个小时从下面的链接中了解文档,我想您会发现使用代码解析和编辑非常容易。

    如果只是替换一些占位符文本,它应该就像将 DXF 文件读入字符串(dxf 文件与 txt 文件没有什么不同)一样简单,执行文本替换操作并将其保存回文件。只需确保您的占位符文本非常独特,并且不包含在下面文档中的任何关键字中(否则您的 DXF 文件将被损坏)。像“PlaceHolderText”这样的东西就可以了。

    http://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf

    编辑:更多信息

    我使用与 SolidWorks 直接竞争的 AutoDesk Inventor 做了大量工作,因此它们实际上是同一个工具。我们遇到了类似的问题,需要将文本放置在 Inventor 的钣金平面图案 DXF 上以识别零件,但 Inventor 根本做不到(看,完全一样!)。我们的一位开发人员的想法是在平面图案上放置一个非常精确的几何冲头。生成 DXF 后,他编写了一些代码来解析 DXF 文件并将几何图形替换为文本实体。更具体地说,我们使用了一个三角形,每个边的长度都定义为小数点后第 7 位。然后,您可以使用三角形的其中一个顶点来定位文本,包括旋转。这个过程是自动的,所以一旦你在上面的文档的帮助下编写了代码(不会花很长时间),它就会起作用。如果您的雕刻师可以按照您想要的方式处理文本,我会说这是一个非常好的解决方案。我们每天使用此代码生成数百个零件。希望这会有所帮助。

    【讨论】:

    • 我将 dxf 作为文本文件打开,只有数字。我搜索了占位符文本(标签 1),但没有找到任何结果。
    • 您是否在使用二进制 dxf?在这种情况下,这是行不通的。您可以通过在记事本中打开文件来判断格式是否为二进制。如果内容看起来像完全乱码,它的二进制文件。如果它看起来有一个命令,它是 ASCII。您能否确认您使用的是 ASCII 或二进制 dxf?
    • 是ASCII,肯定有可辨别的数据。我看到了曲线、直线和圆的所有数据,但没有文字。我已经尝试搜索文本本身和关键字文本,但没有结果
    • 这似乎不对。 1)您使用什么软件来创建和编辑 dxf 模板? 2)您是如何搜索占位符文本的(即匹配整个单词、不区分大小写等)?您的文本可能是 MTEX​​T 吗?可以分享一下你的dxf文件吗?如果我能检查一下,我想帮助你会容易得多。
    • 我没成功,工程师用的是autocad。对 MTEX​​T 的搜索也显示为空。不幸的是,我不能随意分享该文件,因为这些是公司蓝图。
    猜你喜欢
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 2017-04-28
    • 2019-07-23
    • 1970-01-01
    • 2015-12-23
    • 2021-10-21
    • 2014-08-17
    相关资源
    最近更新 更多