在NX表格中填写文本内容是常有的需求,比如工艺开发 中对工艺卡、工序卡的表格填写工艺内容。
一、自动另起单元格填写表格
在NX表格中填写文本内容是常有的需求,比如工艺开发中对工艺卡、工序卡的表格填写工艺内容。而在填写内容时,可能存在工艺内容的信息量远远大于表格单元格可容纳量的情况,从用户角度考虑,希望程序能自动换行、调整字体或是直接另起单元格填写。
前两种NX自带的功能可以快速实现,但另起单元格的人工操作较为复杂,因此本文将介绍如何快速实现自动另起单元格填写表格。
这个需求最简单的实现方式,就是事先确定单元格可以填写的字符串数量,从而在填写过程中将填写内容分割成多段填入其中。但这种方法存在较多问题,比如NX中每个字符在显示时的字符宽度
是不同的,假设某一单元格的字符宽度都很小,这就会导致该单元格远远没有填满的情况。
为了实时获取单元格的填写状况,从UF函数中找到了获取填写结果的函数“AskEvaluatedCellText”。有了该方法后,在填写单元格时就可以逐步添加字符数量,并实时监控显示效果,确保填写的内容量没有超出单元格可容纳量。
但通过测试,发现“AskEvaluatedCellText”获取出的文本信息对中文存在乱码现象。运行如图1所示的程序,输出结果如图2所示。
图1
图2
为了绕开识别乱码的问题,我们采用其他方式识别输出结果。输出结果其实与单元格
的合适方法设置息息相关,如图3所示。
图3
情况1:单元格的适合方法全部没有勾选,那么当填写的内容达到一定量时,输出结果就会全是“#”,如图4所示,那么只需要在出现这种结果时,把填写的内容减少一个字符即可实现“刚刚好填满”的效果,代码如图5所示。
图4
图5
情况2:单元格的适合方法只勾选“换行”和“自动调整行的大小”,那么当填写的内容达到一定量时,就会自动换行,如果仍然希望自动另起单元格填写,则可以判断输出结果是否包行换行符“\n”,如图6所示。
图6
情况3:单元格的适合方法只勾选“自动调整文本的大小”,那么当填写的内容达到一定量时,就无论如何再也填写不进去新的内容,因此判断填写新的信息与之前的信息是否一致。若一致,则认为要另起单元格,如图7所示。
图7
自动另起单元格填写表格功能是比较实用的功能,但其解决思路是比较特别的,通过找到一个方法实现类似人工查看的效果,替代需求中人工重复查看,也就对应提高效率,减少了人工误差。
二、如何在装配中删除阵列组件
在做项目时,有时需要批量删除被抑制组件,本来以为是个特别简单的工具,但做下来还是有个技术点需要注意。一些被抑制组件被用作阵列组件的根组件,那这个时候删除该组件就不能一个delete就结束了。下面就介绍如何删除阵列中的组件。
使用以下代码获取组件的阵列特征:
删除阵列特征;
删除组件。
通过上述三个简单的步骤,就可以将阵列特征的根组件
删除了。由此可以反思,许多看似简单的需求放在复杂的业务场景中,工作量都会呈几何倍数
增长,所以面对复杂的环境,需要耐心调研,反复推敲!
更多关于NX二次开发技巧请关注后厂造。
NX二次开发专题:《NX二次开发实战30讲》
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...