将TrueType字体转换为KlarText NC代码

type2nc的Python项目详细描述


type2nc-将字体轮廓转换为klartext代码

程序与仿真

type2nc将字体文件中字符的轮廓转换为klartext 代码。生成的数控程序可用于TNC控制装置上雕刻 相应字体的文本。数控程序的使用类似于 刻印周期225,带有qs参数。

path details

要求

要在控件上使用生成的klartext代码,它必须具有以下内容 循环和功能:

  • 循环7
  • 循环10
  • 循环26
  • 仪器
  • 斯特伦
  • strcomp
  • fn 9
  • fn 10
  • fn 12

测试是在一台装有tnc 620的机器上进行的,软件版本为817600-03。AS 只要满足上面列出的要求,就可以正常工作。 对较小控件(如tnc 128)的支持尚未测试,但输出没有 包含任何循环路径。

安装

为了能够使用type2nc,您需要python 3和以下库 安装在系统上:

从python打包索引安装

要从python打包索引安装type2nc及其依赖项, 首先安装python3。成功设置后,键入

PIP安装类型2NC

在命令行上。 要启动并运行freetype,可能需要安装 为了图书馆。在linux和macos上,库可能已经 安装。对于Windows,请按照本Github repo上的说明进行操作。

程序使用

  • 首先,选择一种字体,该字体包含您需要的字符 需要。不是每个字体都带有 Unicode标准。如果字体中没有字符, 它将被替换为占位符。一些字体来源:

  • 确保您拥有使用该字体所需的权限。

  • 打开命令提示符并运行python3 type2nc.py或双击 type2n.py文件

  • 选择一个或多个字体文件

  • 创建并选择结果的输出文件夹

  • 输入转换的步长。作为一个人物的轮廓 由曲线组成,这些曲线必须分解成更小的线 部分。所选步长越小,曲线越模糊 将。较小的步长还可以增加生成的文件大小 (几百MB)。

  • 程序将读取字体文件并将轮廓转换为 KlarText代码。这可能需要一些时间,具体取决于步长 先前已选定

  • 当程序完成时,它将显示有关 生成的代码

  • 完成后,你会发现一个数控每个字体文件的程序 你之前选择的。还有一个叫做 type2nc\u demo.h和一个使用示例。

命令行界面

该程序也可以从命令行使用。获取有关 可用选项,运行python3 type2nc.py-h 输出:

`用法:type2nc.py[-h][-i字体输入文件[字体输入文件] [-o输出文件夹][-s步长][-r]

从字体文件创建KlarText NC代码

可选参数: -h,--帮助显示此帮助消息并退出 -i字体输入文件[字体输入文件],--输入字体输入文件[字体输入文件] 一个或多个字体文件的路径 -o输出文件夹,--out输出文件夹 输出文件夹的路径。如果未设置,则使用当前 目录。 -S台阶尺寸,--台阶尺寸台阶尺寸 步长:介于0.001(非常精细)和0.2(非常精细)之间 粗的) -R,--如果设置为空,则移除_empty,输出不包含空的标签 字符`

NC代码用法

NC程序使用这些Q参数:

  • qs1:要雕刻的文本
  • Q1600:曲面Z坐标
  • Q1601:铣削深度
  • Q1602:字符之间快速进纸的安全距离
  • q1603:文本左下角的x坐标
  • q1604:文本左下角的y坐标
  • Q1605:铣削进给
  • Q1606:雕刻文本的大致高度
  • Q1607:文本基线的角度

NC程序内部使用以下参数:

  • ql10ql25:内部计算的局部q参数
  • qs2qs3:用作临时存储的字符串参数

在设置q参数qs1以及q1600到q1607之后,使 使用所选字体的代码对生成的.h文件进行pgm调用。

已知问题

缺少freetype库

在windows上,安装freetype py时,所需的dll文件不是 自动安装。当尝试运行type2nc时,会收到一条错误消息 结束于runtimeerror:freetype library not found。要解决这个问题,请跟随 有关此github repo的说明。

NC代码中不包含字符

为了减小输出文件的文件大小,选择了限制 Unicode标准特定部分的字符范围:

  • 基本拉丁语:0x0020到0x007e
  • C1_ctrl_and_latin1_增补:0x0080至0x00FF
  • IPA扩展:0x0250到0x02AF
  • 希腊语和科普特语字符:0x0370到0x03ff
  • 西里尔字符:0x0400到0x04ff
  • 西里尔文增补字符:0x0500至0x052f
  • 亚美尼亚字符:0x0530到0x058f
  • 希伯来文字符:0x0590到0x05ff
  • 阿拉伯字符:0x0600到0x06ff
  • 叙利亚文字符:0x0700至0x074f
  • 阿拉伯字符:0x0750至0x077f
  • 常规_标点:0x2000到0x206f
  • 箭头字符:0x2190到0x21ff
  • 数学字符:0x2200到0x22ff
  • 其他技术字符:0x2300到0x23ff
  • 其他符号:0x2600到0x26ff
  • 丁巴:0x2700至0x27bf
  • 中日韩统一汉字第1部分:0x4e00至0x9fff

这总共产生23535个字符

如果您需要更多或其他字符,请告诉我,我将添加这些字符。

Windows安装程序

没有一个完整的安装程序可用。如果有足够的兴趣,我可以 研究构建安装程序版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓中通过TCP发送时java文件损坏   Java测试预期=异常失败,断言错误   java ssh4 LazyInitializationException   java是否可以在集合中添加重复项?   java是一个免费的开源数据库管理工具   java是否可以在导出的html中嵌入图像   编译器构造解释一些东西,并用Java运行生成的字节码?   java KeyPairGenerator未生成随机密钥   java使用正则表达式生成字符串而不是匹配字符串   java中的多线程线程间通信   具有复合密钥的java Hibernate合并问题   java不能在MainActivity类之外使用SharedReferences变量   正在获取切割/零件异常消息。使用java Spring ControllerAdvice   java tomcat漏洞讨论   javascript在Java中实现“system”命令   java如何在JUnit5*中加载*Spring测试上下文之前获取回调?   java bluej关于缺少返回语句   JavaSpringBoot@ModelAttribute包含使用字符串键的其他模型   从可选中抛出异常。ifPresent()Java 8