许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  NX/UG二次开发 建模刻字实现方案

NX/UG二次开发 建模刻字实现方案

阅读数 4
点赞 0
article_banner

关于刻字, NX  自身提供了文本曲线命令。但不能调整文字间距,部分字体汉字自相交、重合。解决这些问题,通过网上检索,可以用过windowsAPI “GetGlyphOutlineW”直接解析系统字体,获取点位 信息

GetGlyphOutlineW获取的点位信息包含:

1、直线,

2、二次贝塞尔曲线,

3、三次贝塞尔曲线。

点位是按笔画顺序输出的。详细用法百度或CSDN很多详细教程。


获取点位信息后,需要检查以下情况:

1、自身轮廓自相交,比如字体"Arial"的“餐”字:

2、两个轮廓相交与一点情况,比如字体"Arial"的“左”,“全”字:

3、自身轮廓重合笔画,比如字体"Arial"的“计”字:

4、两个轮廓自相交区域交大的,比如字体"Arial"的“名”字:


解决方案:

1、以同一笔画轮廓点数据作为线段,遍历。找到自身相交的地方,哪个端点距离相交位置进,移动哪个端点,移动方向为线段的另一个端点方向,移动距离大约移动0.01至0.02mm即可(因为文字轮廓数据还未放大),我取的是0.015mm。

2、不同笔画相交于一点的判断,同样采用线段形式遍历,方案同第一步;

3、同一笔画轮廓去除相邻线段角度为0的,即重合或多余的笔画,去除后需要检查是否断开,需要用线段补齐。

4、不同笔画轮廓相交多点或部分线段在另一个轮廓内,这种思路与第一步大致相同,但移动距离为交点到最近的端点距离+0.01或0.02mm。

5、划分区域,判断笔画是否在其他笔画内部,用于划分拉伸区域,判断点是否在轮廓内按下图所示,需要配合格林公式。


如继续扩展工具:

A、比如需要与NX文本曲线一致的动态效果,则需要鼠标点位转换到3D点位,预览曲线设置透视显示。

B、当鼠标点位位于面上时,获取鼠标预选对象,将预览曲线平面垂直与面上鼠标点位处的法向;

C、使用快捷键调整字体大小,使用键盘钩子,截获对应的消息;

D、创建刻字跟随求2D曲线边界,那每个字的矩阵需要以曲线所在点的方向确定,文字距离,则需要两点角度和方向确定,这个可以参考口罩滚子的2D刀路转3D刀路 算法  

E 、文字斜切变换,直接计算点位到Y轴的距离,即高度,然后按cot角度*高度,即为X轴移动距离;

F、反字,则直接沿Y轴翻转,即点位做旋转变换;

G、支持单线字,这个可以解析CAD字体点位或NX自身字体点位,然后按点创建,这些点位均为线段,创建结果并不美观。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空