批量生成工程图

合集下载

CAD中的自动化和批量处理技巧

CAD中的自动化和批量处理技巧

CAD中的自动化和批量处理技巧CAD技术的发展为设计师们提供了更高效、精确的设计工具。

在设计过程中,自动化和批量处理技巧的应用能够极大地提升工作效率。

下面,我将分享几种CAD软件中常用的自动化和批量处理技巧,希望对你的设计工作有所帮助。

一、批量处理技巧1. 批量修改属性值:当设计中有大量相似元素需要修改属性值时,手动一个一个修改将十分耗时。

这时,批量处理技巧能够帮助你快速完成任务。

打开CAD软件,选择需要批量修改的元素,进入修改属性值的界面,设置好要修改的数值,然后点击批量处理功能,软件会自动将所有选中元素的属性值修改为设定值。

2. 批量导入导出:有时候,我们需要将CAD图纸中的数据导入到其他软件中进行后续处理,或者将其他软件中的数据导入到CAD软件中进行设计。

这时,批量导入导出功能可以帮助我们快速完成数据转换。

打开CAD软件,选择要导入或导出的文件夹,在文件夹中选择需要处理的文件,点击批量导入或导出功能,软件会自动进行相应的操作。

二、自动化技巧1. 自动标注:标注是CAD设计中非常重要的一环,但手动标注往往费时费力。

幸运的是,CAD软件中提供了自动标注的功能。

打开CAD软件,选择需要标注的元素,点击自动标注功能,软件会根据已有的规则自动为元素添加标注。

你可以根据实际需求设置标注规则,比如字体大小、位置等。

2. 自动排列图纸:当你需要排列大量的图纸时,手动一个一个调整位置将非常繁琐。

CAD软件中的自动排列图纸功能能够自动将图纸按照设定的规则排列好。

打开CAD软件,选择需要排列的图纸,点击自动排列图纸功能,软件会根据设定的规则自动将图纸进行排列,提高设计效率。

三、常用的CAD软件目前,市面上有很多种CAD软件可供选择,每个软件都有其特点和适用范围。

以下是几种常用的CAD软件:1. AutoCAD:作为最受欢迎的CAD软件之一,AutoCAD拥有丰富的功能和强大的绘图工具,广泛应用于建筑、机械等领域。

SolidWorks钣金件批量展开并导出DWG、DXF的方法

SolidWorks钣金件批量展开并导出DWG、DXF的方法

SolidWorks钣金件批量展开并导出DWG、DXF的方法一.概述大部分做钣金的企业都需要将SolidWorks制作的钣金件导出为DWG、DXF文件用于加工生产,本文研究一种快捷高效的方法,介绍批量将钣金件(包括多实体钣金件)导出为DWG或DXF展开图。

SolidWorks单个钣金件可以导出DWG、DXF文件,但是对于批量输出却比较困难,尤其是多实体钣金件,利用SolidWorks自身的功能就更无法实现了,这就需要借助SolidWorks插件功能来实现。

二.操作步骤1. 安装SolidWorks(建议2012及以上版本)和KYTool插件。

(大部分人可以忽略此步骤)2. 打开SolidWorks,然后打开KYTool插件的钣金转换工具(第三个功能)3. 在钣金转换工具窗口中设置钣金输出内容,可以包括:几何体、隐藏边线、折弯线、草图、合并共面、库特征、成型刀具、边界框(SW2013以下不支持),如下图:4. 选择要批量处理的钣金件:可以通过窗口上方的“添加文件”“添加目录”按钮来实现,更简便的方法是将文件或文件夹直接拖到窗口的白色区域中。

5. 选择转换格式DXF或DWG6. 选择要转换的配置,可以是仅当前配置,也可以是所有的配置都出一张展开图。

7. 选择保存路径,可以是钣金文件的原始路径,也可以是新的文件夹。

8. 设置完成后,点击【开始转换】按钮,程序会自动逐条输出展开图,这期间会有进度条,转换过程中可以随时暂停。

9. 转换完成后,会弹出转换结果,成功了多少个文件的多少个配置,多少个平板形式,以及失败了多少个,失败原因等,都会有记录,可以将结果导出到Excel或文本文件中查阅。

多配置的钣金件导出命名方式是:“文件名[配置名].DWG”多实体的钣金件命名方式是:“文件名[配置名][平板形式n] .DWG”打开文件夹查看刚才导出的DXF(DWG)文件:三.注意事项1.一个钣金件的实体数量一般为1个,也可以是多个,建议不要超过100个。

ANSYS实用教程教你如何批量的输出结果图

ANSYS实用教程教你如何批量的输出结果图

ANSYS实用教程教你如何批量的输出结果图工程项目中,很多时候会遇到批量出图的情况,今日水哥就简单介绍下后处理时如何批量导出图片。

ANSYS提供了很多图片格式,但有些格式只适用于特定的操作系统或者Device,且有些图片格式是不能通过APDL语言导出来的(ANSYS导出图片的命令流有三种,水哥只推荐/image,其他两种使用起来太繁琐,不做推荐),只能采用GUI操作。

本人就比较偏爱的三种格式简单如下:1)JPG此种格式清晰度较高,且可以根据自己需要设置图片质量高低,经常不涉及批量出图,只需一两张结果图时,我便会使用这种格式。

但这种格式不能通过/image命令导出来,且只会保留图片到你刚开始指定的工作目录下,文件名字不能更改。

GUi路径如下:2)BMP、PNG这两种格式均可通过GUI和命令流输出,GUi输出和上述JPG的输出方法如出一辙,这里不再介绍。

既然可以使用命令流输出,那么就可以采用循环的方式批量出图了,后面会做例子简单演示。

但此两种格式的图片空间较大,一般在2M左右,但对于如今的磁盘空间来讲,这点缺点微不足道了。

3)emf这个格式不用说了,对写论文的童鞋来讲在熟悉不过了。

此格式唯一不好的地方是不能采用命令流输出,只能GUi操作。

回归正题,如何批量出图。

使用命令流:/image,该命令流使用格式如下:label一般选择save,Fname 为文件的名字,当采用循环存储的时候为了避免图片相互之间因为同名被覆盖,此处需要用到将数字转为字符的命令%_%,可通过引号指定图片保存的位置,ext为图片格式,此处可以为bmp,png。

例:某等厚度圆环孔板的模态分析,已经求得其前十阶的振动模态,现需要批量导出其前十阶模态。

模态求解命令流如下:!=========!前处理!==========/soluasel,s,loc,x,r1da,all,allasel,allantype,2modopt,lanb,10mxpand,10solve批量导出结果图命令流如下...阅读原文。

用LiteTools批量打印SolidWorks工程图

用LiteTools批量打印SolidWorks工程图

批量打印SolidWorks工程图撰稿人:廖雄杰华睿信息技术有限公司摘要:每当做完一套图纸的时候总是会有几十张,上百张,甚至几百张工程图需要打印,这时候如果一张一张的打开,然后点打印,设置打印机,纸张等等这样的重复性工作,如果做上几百次,这显得非常繁琐,于是批量打印是十分必要的。

打印SolidWorks工程图功能可以完成一次性大量打印,而无需一张一张进行繁琐的,打开,设置,打印操作,可大量节省设计师的时间:而SolidWorks工具中自带的Task Scheduler 工具批量打印时,只能打印出A4的图纸;并没有按图纸页面大小自动选择纸张来源,所以这里介绍一个小插件:LiteTools,可以实现;关键词:LiteTools、批量打印、按图纸页面大小自动选择纸张来源∙可以一次性打印很多张图纸;∙无需每次设置,一次设置就够了;∙打印速度快;∙可以进行各类排序打印,可按图号,文件名等等。

解决方法:打印文件点击界面中的添加文件按钮,在弹出的对话框中选择需要操作的Solidworks 工程图文件(.slddrw):添加的文件的方式可有:1.从LiteTools中发送过来2.手动添加文件3.手动添加文件夹或子文件夹4.添加当前SolidWorks打开的所有工程图5.直接拖入文件到文件打印列表点击开始,在弹出对话框中点击选择/设置打印机,设置数量等参数,如下图。

点击打印,将开始打印。

以上简单的步骤就可以进行打印了,我们要做的,仅仅是不让打印机缺纸。

当然,如果一次打印上百张图纸,最好也让打印机中途休息一下。

下面将介绍一些高级的用法打印排序批量打印支持进行自定义排序目前有几种排序的方式,下面一一介绍:1、使用特定的文件属性进行排序这种方式需要联合使用LiteTools,利用LiteTools先行读取出当前装配体的所有属性,然后,按指定属性排序之后发送到批量打印:先在位置1这里点击排序,然后点击位置2的批量打印工程图即可。

如何使用Excel进行批量图表绘制

如何使用Excel进行批量图表绘制

如何使用Excel进行批量图表绘制在日常工作和学习中,我们经常需要使用图表来展示数据和分析结果。

而Excel作为一款强大的电子表格软件,不仅可以进行数据处理和计算,还可以方便地绘制各种图表。

本文将介绍如何使用Excel进行批量图表绘制,以提高工作效率和数据可视化效果。

一、准备数据在使用Excel进行批量图表绘制之前,首先需要准备好相关的数据。

可以将数据整理成表格形式,每一列代表一个变量,每一行代表一个数据点。

确保数据的准确性和完整性,这样才能绘制出准确的图表。

二、选择合适的图表类型Excel提供了多种图表类型供我们选择,如折线图、柱状图、饼图等。

在选择图表类型时,需要根据数据的特点和展示的目的来决定。

例如,如果要展示数据的趋势变化,可以选择折线图;如果要比较不同类别的数据,可以选择柱状图;如果要展示数据的占比关系,可以选择饼图。

根据具体情况选择合适的图表类型,可以更好地展示数据。

三、批量绘制图表在Excel中,可以通过复制粘贴的方式批量绘制图表。

具体操作如下:1. 绘制第一个图表:选择要绘制图表的数据范围,点击“插入”选项卡中的“图表”按钮,在弹出的图表类型列表中选择合适的图表类型。

Excel会自动创建一个图表,并将其插入到当前工作表中。

2. 复制第一个图表:选中已绘制的图表,按下Ctrl+C快捷键,或者点击右键选择“复制”。

3. 粘贴图表:选择要粘贴图表的位置,按下Ctrl+V快捷键,或者点击右键选择“粘贴”。

Excel会在选定位置粘贴一个与原图表相同的副本。

4. 修改图表数据:选中新粘贴的图表,点击“设计”选项卡中的“选择数据”按钮,修改图表的数据范围。

根据需要,可以选择不同的数据范围,以便绘制不同的图表。

5. 重复复制粘贴:重复第2至第4步,复制粘贴图表,并修改图表数据,直到绘制完所有需要的图表。

通过以上步骤,我们可以快速地批量绘制出多个图表。

这种方法不仅可以提高工作效率,还可以确保图表的一致性和规范性。

使用VBA实现EXCEL批量生成图表并发送

使用VBA实现EXCEL批量生成图表并发送

使用EXCEL VBA实现图表批量生成并发送业务需求office word2007的邮件合并功能是财务、文秘类工作经常使用的功能之一,该功能可以生成包含可变内容的批量邮件文档,广泛适用于发送工资条、成绩单、通知书等,这里不再赘述。

笔者所在单位最近为加强员工考核管理工作力度,提出了一个类似于邮件合并功能,但使用邮件合并功能却不能实现的需求,下面用文字结合图表描述:1.将员工百分制考核结果批量以图表(折线图)反应出来,每一条员工数据均生成一个类似于下图右侧的图表。

(图1)2.使用类似于邮件合并方式实现员工考核图表的批量发送,将生成的图表插入邮件正文分别发送给每位员工。

(图2)解决思路思路一:使用+Sqlserver(或ACCESS等,下同)开发一个网站,设置好权限,允许员工查看自己的反馈结果。

思路评价:可行,但达不到设想中的推送效果。

思路二:使用+Sqlserver开发一个系统,内置图表模板,图表基于固定区域数据生成;为每位员工复制一份作为报表,将该员工数据填写到固定区域;将每位员工的报表作为附件发送给每位员工。

思路评价:可行,但开发量大,效果不直观。

思路三:使用+Sqlserver开发一个系统,使用VS2008版以上自带控件或第三方控件如dotnetcharting,为每位员工生成一张图片,将该图片插入邮件发送给每位员工。

思路评价:可行,但开发量大。

思路四:使用excel VBA为每位员工生成一张图片,将该图片插入邮件发送给每位员工。

这个思路一开始并没有列入考虑范围,主要原因是当时认为在excel中为每位员工生成一个图表是不可能的,即使能生成也没办法脱离excel工作薄,分别和员工对应起来并发送。

最终采用本思路,是缘于笔者发现VBA可以非常容易地把图表导出为图片。

思路评价:可行,事实证明,开发量比想象的小很多。

开发环境准备1.在运行该程序的电脑上安装Office Excel2007或以上版本;2.正确配置OUTLOOK使之能够正常发送邮件;3.打开Excel2007新建工作薄,把测试数据输入到sheet1工作表,把工作薄保存到工作目录(为方便后文描述,这里的目录设为“E:\excel-vba”),在该目录下新建“imgfile”子目录,以存放图片。

使用CAD进行自动绘图和批量处理

使用CAD进行自动绘图和批量处理CAD(计算机辅助设计)软件是设计师们的得力工具,它能够大大提高绘图的效率和精确度。

在日常工作中,有许多场景需要使用CAD进行自动绘图和批量处理,下面将介绍一些使用CAD进行自动绘图和批量处理的技巧和方法。

1. 使用CAD命令CAD软件提供了许多绘图和编辑命令,这些命令可以帮助我们快速完成一些常见的绘图任务。

例如,我们可以使用"Line"命令来绘制直线,使用"Circle"命令来绘制圆形,使用"Offset"命令来生成等距线等。

了解和熟练掌握这些绘图命令,可以大大提高绘图速度和准确性。

2. 使用CAD工具栏和快捷键CAD软件通常提供了一系列工具栏和快捷键,这些工具栏和快捷键可以帮助我们快速切换和使用各种功能和命令。

例如,我们可以使用工具栏上的"绘制"按钮来选择绘图命令,使用"快捷键"来快速进行命令输入等。

通过熟练运用这些工具栏和快捷键,可以进一步提高绘图效率。

3. 使用CAD的自动绘图工具CAD软件通常提供了许多自动绘图工具,这些工具可以根据输入的参数自动生成相应的图形。

例如,我们可以使用CAD软件自带的"块"功能来创建自定义的图元,然后通过输入参数来自动生成不同大小和形状的图块。

此外,一些CAD软件还提供了"阵列"、"复制"和"镜像"等自动复制工具,可以帮助我们快速生成复杂的图形和图案。

4. 使用CAD的批量处理功能对于一些重复的绘图任务,CAD软件通常提供了批量处理功能,可以一次性同时处理多个文件。

例如,我们可以使用CAD软件自带的"批量打印"功能,将多个图纸一次性打印出来;使用"批量导入"功能,将多个图形文件一次性导入到一个CAD工程中等。

通过使用CAD的批量处理功能,可以极大地提高绘图的效率和便捷性。

CAD生成工程图的方法与技巧

CAD生成工程图的方法与技巧CAD技术作为当今工程领域中必不可少的一项工具,广泛应用于工程图纸的设计、图纸的编辑和工程图纸的生成等方面。

在本文中,我们将讨论CAD的使用技巧和生成工程图的方法,以帮助读者更好地应用CAD软件。

首先,对于CAD软件的使用,掌握基本的操作快捷键非常重要。

熟悉并掌握常用的快捷键可以提高工作效率。

例如,使用Ctrl+C和Ctrl+V可以复制和粘贴元素,使用Ctrl+Z可以撤销上一步操作,使用Ctrl+Shift+Z可以重做被撤销的操作。

其次,利用CAD软件中的图层功能可以更好地管理图形元素。

通过对图层的设置,可以将不同的元素分组,便于管理和编辑。

同时,可以通过图层的显示和隐藏来使得工程图纸更加清晰易读。

另外,合理使用CAD软件中的标注工具是生成工程图的关键。

标注工具可以在工程图中添加尺寸、注释和符号等信息,使得图纸更加详细和准确。

在标注过程中,需要注意尺寸的选择和布局,避免尺寸之间的重叠和混乱,同时也要确保标注的准确性。

此外,掌握CAD软件中的修改工具也是生成工程图的关键技巧。

通过使用移动、旋转、缩放和镜像等工具,可以对图纸中的元素进行调整和修改,从而达到绘制精确和符合需求的工程图的目的。

除了基本的操作技巧,使用CAD软件生成工程图还需要了解一些绘图原则和规范。

首先,要清楚地了解绘图的比例关系,根据实际需求选择合适的比例。

其次,要遵循工程图纸的规范和要求,包括图纸的布局、线型的选择和使用等。

最后,要注意绘图的精确性和准确性,尽量减少误差和不必要的修改。

在CAD软件中生成工程图时,还可以使用一些辅助绘图工具和插件来提高工作效率。

例如,可以使用自动CAD软件中的图形库或者外部的CAD插件,如BIM插件等。

这些工具和插件包含了大量的预定义图形、符号和图标,可以帮助用户更快速地绘制工程图并提高精度。

综上所述,CAD软件是生成工程图的重要工具,在使用过程中,熟练掌握基本操作快捷键、合理使用图层、标注和修改工具、了解绘图原则和规范,并结合辅助绘图工具和插件,可以提高工作效率和绘图精度。

arcgis批量出图

ArcGIS快速、批量出图办法
第一部分
1、数据准备:
加载需要出图的矢量数据,对需要出图的行政区划数据进行添加编号属性处理,编号为后续出图进行重命名。

2、启动数据驱动页面
在ARCMap空白处右键勾选启动数据驱动页面,选择需要出图的行政图层,设置需要出图的名称字段和排序字段;并根据需求设置地图范围最佳大小。

3、动态图名加入
插入数据驱动页面名称,根据每个行政区进行命名出图。

4、优化
根据自身出图而定,根据前面基础设置后,行政区外围数据有些多余,需要将其外围数据进行“隐藏”。

在图层右键,切换至数据框界面,选择裁剪至当前数据驱动页面范围,此时目标行政区外的数据都将进行隐藏,如需保存主要界线数据的显示选择排除图层进行勾选。

5、导出地图
选择导出格式为PDF,在页面设置选择“全部”,一般将数据导出为单个PDF,后期转为单个png。

第二部分
1、PDF转png
PDF转照片方法很多,这边就介绍迅读转换器进行转换,分辨率一般选最高,以免照片失真。

2、照片批量重命名
照片批量重命名方法很多,本次使用文件批量命名大师。

A、先将刚刚转换的照片添加至软件中,此时数据中显示了文件名和文件目录(新名是空的后续需要补充的);B、将这些信息导出到CSV中,根据第一步图号的编号与文件名连接相应的行政区名,将名字赋值给新文件名;C、再而从CSV文件导入,此时新文件名已有相应行政区名,最后点击重命名,完成处理。

第三部分
教程仅供参考,有不足的地方欢迎大家批评指正,谢谢!。

Solidworks钣金批量处理使用说明

Solidworks钣金批量处理工具
使用说明
一、主要功能
1、钣金零件自动生成dwg格式的1:1展开图
2、自动生成工程图,工程图内包含标准三视图、轴测图,如是钣金零件还会有展开图。

且能根据工程图模板自动缩放到合适大小,且排版美观。

3、自动生成物料信息表,表格内容含数量、材料、重量、外形尺寸等,还有展开微缩图、轴侧微缩图、并带有超级链接。

二、运行环境
1、操作系统:win7 win8
2、solidworks版本:2014及以上版本。

三、基本操作
1、连接Solidworks:打开Solidworks软件,然后依次点击本程序连接——连接SW(或多版本SW连接)
PS:如电脑安装了多个版本的Solidworks,请选择多版本SW连接,然后按提示操作。

2、对象为装配体的操作:打开装配体后,按照下图步骤进行操作。

3、对象为指定路径文件:关闭Solidworks已打开的文档,然后按照下图步骤进行操作
4、中途停止:如需要中途停止,则点击按钮停止即可。

5、操作方法视频:/s/1qWqdZOS。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

批量生成工程图具有如下功能:1)在列表中列出装配体下所有的零件,选择多个需要生成工程图的零件2)然后对选中的零件生成工程图3)在每一个工程图中添加表,列出工程图对应模型的参数信息(名称,类型,值等)代码如下://动作函数ProError UserFeatVisitAct(ProFeature* p_feature,ProError status,ProAppData data){ProArrayObjectAdd((ProArray*)data,PRO_VALUE_UNUSED,1,p_feature);return PRO_TK_NO_ERROR;}void CDrawingGenerate::UserLoadAllPartInAsm(ProMdl mdl){ProError status;ProArray array;status=ProArrayAlloc(0,sizeof(ProFeature),1,&array);if (PRO_TK_NO_ERROR!=status){AfxMessageBox(_T("内存错误!"));return;}//遍历特征status=ProSolidFeatVisit((ProSolid)mdl,(ProFeatureVisitAction)UserFeatVisitAct,NULL,(ProAppData)&array); if (PRO_TK_NO_ERROR!=status){AfxMessageBox(_T("遍历失败!"));return;}int array_size;status=ProArraySizeGet(array,&array_size);if (0==array_size){AfxMessageBox(_T("no feature was found!"));return;}//循环筛选特征for (int i=0;i<array_size;i++){ProFeature feature;feature=((ProFeature*)array)[i];int num=feature.id;ProMdl mdl_prt;ProName name;ProFeattype p_type;status=ProFeatureTypeGet(&feature,&p_type);//1000--PRO_MDL_COMPONENT,筛选出PART即可if (1000==p_type){status=ProAsmcompMdlGet((ProAsmcomp*)&feature,&mdl_prt); status=ProMdlNameGet(mdl_prt,name);CString m_strID;m_strID.Format(_T("%d"),num);m_PartList.InsertItem(0,name);m_PartList.SetItemText(0,1,m_strID);UserLoadAllPartInAsm(mdl_prt);}}ProArrayFree(&array);}void CDrawingGenerate::OnBnClickedBtnOpenAssembly(){// TODO: 在此添加控件通知处理程序代码ProError err;ProMdl mdl;ProFamilyName name;ProStringToWstring(name,"D:\\demo\\parts\\bottle.asm");err=ProMdlRetrieve(name,PRO_MDL_ASSEMBLY,&mdl);if (PRO_TK_NO_ERROR!=err){return;}ProMdlDisplay(mdl);UserLoadAllPartInAsm(mdl);int pid;ProWindowCurrentGet(&pid);ProWindowActivate(pid);}//遍历参数的动作函数ProError UserParamVisitAct(ProParameter *param,ProError status,ProAppData data) {vector<ProParameter> *pf=(vector<ProParameter>*)data;pf->push_back(*param);return PRO_TK_NO_ERROR;}//向表格添加数据ProError TableTextAdd(ProDwgtable* table,int col,int row,char* text){ProError status;ProWstring* lines;ProLine first_line;//准备要填写的内容status=ProArrayAlloc(1,sizeof(ProWstring),1,(ProArray*)&lines); ProStringToWstring(first_line,text);lines[0]=(ProWstring)first_line;//将内容填入表格status=ProDwgtableTextEnter(table,col,row,lines);status=ProArrayFree((ProArray*)&lines);return status;}int CDrawingGenerate::UserDrawingAllCreate(){ProError status;ProName name;ProStringToWstring(name,"D:\\demo\\parts");ProPath *file_list,*dir_list;status=ProArrayAlloc(0,sizeof(ProPath),1,(ProArray*)&file_list);status=ProArrayAlloc(0,sizeof(ProPath),1,(ProArray*)&dir_list);status=ProFilesList(name,L"*.prt",PRO_FILE_LIST_LATEST,&file_list,&dir_list);if (PRO_TK_NO_ERROR!=status){return status;}ProMdl mdl;int size=0;ProArraySizeGet((ProArray)file_list,&size);for (int i=0;i<size;i++){status=ProMdlLoad(file_list[i],PRO_MDL_PART,PRO_B_FALSE,&mdl);ProMdlDisplay(mdl);//遍历参数ProParamvalue proval;ProModelitem item;status=ProMdlToModelitem(mdl,&item);vector<ProParameter> dims;status=ProParameterVisit(&item,NULL,(ProParameterAction)UserParamVisitAct,&dims);if (PRO_TK_NO_ERROR!=status){return status;}//生成工程图ProMdlType mdl_type;ProMdldata data;ProModel model;ProFileName msgfile;ProName predefined_template,name;ProDrawing created_drawing=NULL;ProDwgcreateOptions options=(ProDwgcreateOptions)0;ProDwgcreateErrs errors;ProStringToWstring(msgfile,"msg_drawing.txt");status=ProMdlTypeGet(mdl,&mdl_type);if (PRO_TK_NO_ERROR!=status||PRO_MDL_PART!=mdl_type){return PRO_TK_INVALID_TYPE;}status=ProMdlDataGet(mdl,&data);wcscpy_s(,);wcscpy_s(model.type,data.type);ProStringToWstring(predefined_template,"c_drawing");status=ProMessageDisplay(msgfile,"User enter new drawing name:");status=ProMessageStringRead(PRO_NAME_SIZE,name);if (PRO_TK_NO_ERROR!=status){return status;}status=ProDrawingFromTmpltCreate(name,predefined_template,&model,options,&created_drawing,&errors); if (PRO_TK_NO_ERROR!=status/*||PRO_TK_DWGCREATE_ERRORS!=status*/){return status;}//创建表格ProDwgtabledata tdata;ProDwgtable table;double init_heights[]={1,1,0};double widths[]={15,15,15};ProHorzJust adjusts[]={PROHORZJUST_CENTER,PROHORZJUST_CENTER,PROHORZJUST_CENTER}; double pos[]={400.0,200.0,0.0};int n_rows;ProCharLine char_name,char_value,char_type;status=ProDwgtabledataAlloc(&tdata);//设置表格起点status=ProDwgtabledataOriginSet(tdata,pos);status=ProDwgtabledataSizetypeSet(tdata,PRODWGTABLESIZE_CHARACTERS);//设置表格列属性status=ProDwgtabledataColumnsSet(tdata,3,widths,adjusts);//设置表格行属性status=ProDwgtabledataRowsSet(tdata,1,init_heights);//创建表格status=ProDrawingTableCreate(created_drawing,tdata,PRO_B_FALSE,&table);//向表格添加数据status=TableTextAdd(&table,1,1,"Param Name");status=TableTextAdd(&table,2,1,"Value");status=TableTextAdd(&table,3,1,"Type");for (unsigned int j=0;j<dims.size();j++){status=ProParameterValueGet(&dims[j],&proval);status=ProDwgtableRowsCount(&table,&n_rows);//在表格的末尾添加一行status=ProDwgtableRowAdd(&table,n_rows,PRO_B_FALSE,1);//在新行中添加参数名称、数值和类型ProWstringToString(char_name,dims[j].id);status=TableTextAdd(&table,1,n_rows+1,char_name);switch(proval.type){case PRO_PARAM_DOUBLE:sprintf_s(char_value,"%f",proval.value.d_val);break;case PRO_PARAM_INTEGER:sprintf_s(char_value,"%d",proval.value.i_val);break;case PRO_PARAM_STRING:sprintf_s(char_value,"%ws",proval.value.s_val);default:break;}status=TableTextAdd(&table,2,n_rows+1,char_value); sprintf_s(char_type,"%d",proval.type);status=TableTextAdd(&table,3,n_rows+1,char_type);}//更新表格显示status=ProDrawingTablesUpdate(created_drawing);}status=ProArrayFree((ProArray*)&file_list);status=ProArrayFree((ProArray*)&dir_list);return PRO_TK_NO_ERROR;}void CDrawingGenerate::OnBnClickedBtnDrawingCreate() {// TODO: 在此添加控件通知处理程序代码UserDrawingAllCreate();}运行结果:。

相关文档
最新文档