- 博客(226)
- 资源 (54)
- 收藏
- 关注
原创 开源LitCAD:一个使用C#编写的非常简易的CAD小程序。
开源LitCAD源码为了探究CAD软件的基本原理,本人写了一个非常简易的CAD小程序。现将该套代码在Github上开源。地址:https://github.com/wangyao1052/LitCAD该源码遵循MIT开源协议。...
2018-10-01 17:26:42 17157 13
原创 Pro/TOOLKIT注册文件
想要Pro/E加载同步模式的Pro/TOOLKIT程序,需要用到注册文件。 注册文件包含Pro/TOOLKIT应用程序的路径,text文件夹的路径等信息,Pro/E通过注册文件中包含的信息,找到Pro/TOOLKIT程序并加载。 以下是一个典型的注册文件的示例: name Test_wf5 startup dll exec_file C:\Test_wf
2018-01-21 16:36:31 7826
原创 Pro/TOOLKIT示例程序(十五)Mapkey(映射键)
Pro/TOOLKIT并不能完全实现Pro/E的所有功能。 对于Pro/TOOLKIT没有提供API接口的功能,就需要使用Mapkey来实现。 你可以先录制一段Mapkey,然后调用ProMacroLoad执行Mapkey。 在Wildfire5下录制Mapkey的步骤: 【工具】->【映射键】 录制完成之后,可以通过【保存】查看Mapkey的伪代码。示例:修改工程图所有尺寸的箭
2018-01-21 16:32:14 2543
原创 Pro/TOOLKIT示例程序(十四)特征元素树
Pro/TOOLKIT创建特征时需要用到特征元素树。 特征元素树是用树状的结构形式来表达定义某个特征时所需的全部信息。 基于参照面偏移一定距离创建基准面的代码如下:static ProError UserElemtreeElementAdd( ProElement parent_element, ProElement child_element, ProValu
2018-01-21 16:22:10 2427
原创 Pro/TOOLKIT示例程序(十三)UDF
以下示例演示怎样使用Pro/TOOLKIT插入UDF。 示例中的UDF通过选择一个基准点来创建一个孔特征,可以指定孔的直径和孔的深度。// 示例:插入UDFint TestUDF(uiCmdCmdId command, uiCmdValue *p_value, void *p_push_command_data){
2018-01-21 16:06:04 1853
原创 Pro/TOOLKIT示例程序(十二)组装
知识点Pro/TOOLKIT的组装流程如下: 1. ProAsmcompAssemble 将元件模型组装到组立档案中,此时不包含任何约束。ProError ProAsmcompAssemble( ProAssembly owner_assembly, // 组立档案 ProSolid component_model, // 待组装的元件模型 ProM
2018-01-21 15:39:37 4801 6
原创 Pro/TOOLKIT示例程序(十一)获取组立档的层次结构
在Pro/TOOLKIT中,类型ProAssembly表示组立档,而组立档下的元件,则用ProAsmcomp表示。typedef struct pro_model_item{ ProType type; int id; ProMdl owner;} ProAsmcomp;ProAsmcomp和ProModelitem共用相同的数据结构,更确切地说,ProAs
2018-01-21 15:04:01 2401 2
原创 Pro/TOOLKIT示例程序(十)尺寸ProDimension
尺寸ProDimension在Pro/TOOLKIT中,类型ProDimension用来表示尺寸。定义如下:typedef struct pro_model_item{ ProType type; int id; ProMdl owner;} ProDimension;ProDimension和ProModelitem共用相同的数据结构。type:
2018-01-21 14:53:17 1611
原创 Pro/TOOLKIT示例程序(九)参数ProParameter
在Pro/TOOLKIT中,类型ProParameter用来表示参数。typedef struct proparameter{ ProType type; // 值为PRO_PARAMETER ProName id; // 参数名 ProParamowner owner; // 参数的所有者} ProParameter;
2018-01-14 19:51:57 3188 1
原创 Pro/TOOLKIT示例程序(八)获取几何元素:面
在Pro/TOOLKIT中,类型ProSurface表示面。ProSurface和ProGeomitem之间可以相互转换:ProSurface -> ProGeomitem:ProSurfaceToGeomitemProGeomitem -> ProSurface:ProGeomitemToSurfaceProSurfaceTypeGet用于获取面的类型,面的类型有以下几种:P
2018-01-14 15:59:09 2127 4
原创 Pro/TOOLKIT示例程序(七)获取几何元素:边
在Pro/TOOLKIT中,类型ProEdge表示边。ProEdge和ProGeomitem之间可以相互转换:ProEdge -> ProGeomitem:ProEdgeToGeomitemProGeomitem -> ProEdge:ProGeomitemToEdgeProEdgeTypeGet用于获取边的类型,边的类型有以下几种PRO_ENT_LINE:直边。PRO_EN
2018-01-14 15:45:48 1363
原创 Pro/TOOLKIT示例程序(六)获取几何元素:坐标系
在Pro/TOOLKIT中,类型ProCsys表示坐标系。ProCsys和ProGeomitem之间可以相互转换:ProCsys -> ProGeomitem:ProCsysToGeomitemProGeomitem -> ProCsys:ProGeomitemToCsys函数ProGeomitemdataGet用于获取坐标系的数据,注意在用完之后要调用ProGeomitemdata
2018-01-14 15:41:14 1236
原创 Pro/TOOLKIT示例程序(五)获取几何元素:基准轴
在Pro/TOOLKIT中,类型ProAxis表示轴。ProAxis和ProGeomitem之间可以相互转换:ProAxis -> ProGeomitem:ProAxisToGeomitemProGeomitem -> ProAxis:ProGeomitemToAxis函数ProGeomitemdataGet用于获取轴的数据,注意在用完之后要调用ProGeomitemdataFree
2018-01-14 15:38:20 1013
原创 Pro/TOOLKIT示例程序(四)获取几何元素:基准点
在Pro/TOOLKIT中,类型ProPoint表示基准点。ProPoint和ProGeomitem之间可以相互转换:ProPoint -> ProGeomitem:ProPointToGeomitemProGeomitem -> ProPoint:ProGeomitemToPoint函数ProPointCoordGet用于获取基准点的坐标值。 示例代码:// 获取基准点的
2018-01-14 15:32:57 1309 3
原创 Pro/TOOLKIT示例程序(三)选择集ProSelection
Pro/TOOLKIT提供了ProSelect函数来让用户交互选择对象。ProSelect( char option[], // 过滤字符串,多个过滤项之间用逗号分隔(如"feature,surface") int max_count, // 最多可以选择的数量,1表示不限数量 ProSelection
2018-01-14 15:24:07 2589 1
原创 Pro/TOOLKIT示例程序(二)遍历模型下的所有特征
特征的基本概念Pro/E是基于特征的参数化造型系统,在模型树上的每个项目都是特征。如下图所示: 该档案有3个基准面、1个坐标系、1个拉伸、1个孔共6个特征。 我们可以通过配置【树列】选项来查看特征的信息。 特征是对Pro/E模型中几何元素的一层封装。就好比你是负责指挥战争的司令官,你只会下达这样的命令:X师、Y师去攻打敌军的哪个部队,而不会详细到X师、Y师下的具体成员。特征就
2018-01-14 13:44:19 5550 2
原创 Pro/TOOLKIT示例程序(一)模型和模型项
模型和模型项模型:ProMdl在Pro/TOOLKIT中,由类型ProMdl代表模型。ProMdl本质上是void类型指针,定义如下:typedef void* ProMdl;Pro/E中有哪些类别的模型呢?可以在新建模型对话框中看出: ProMdlCurrentGet:获取当前模型。ProMdlTypeGet:获取模型的类型。ProMdlDataGet:获取模
2018-01-14 13:21:37 4577 3
原创 Pro/TOOLKIT开发之前你需要了解的字符串知识
在C++中存在两种类型的字符:charwchar_tchar为ANSI编码,一个char字符占用一个字节。 wchar_t为UNICODE编码,一个wchar_t占用两个字节,我们常称wchar_t为宽字符。 如何定义char与wchar_t的数组变量:char str[] = "123";wchar_t wstr[] = L"123";注意:在字符串常量之前加L表
2018-01-14 13:09:53 1509
原创 如何调试Pro/TOOLKIT程序
调试方法附加到Pro/E进程:在Visual Studio中,点击【工具】->【附加到进程】菜单项,快捷键为【Ctrl + Alt + P】。 在弹出的【附加到进程】对话框中,选择进程:xtop.exe。然后单击【附加】按钮即可。 注:xtop.exe为Pro/E进程。在要调试的代码处打断点,快捷键为F9。执行Pro/TOOLKIT程序即可进行调试。Release版本如
2018-01-13 18:15:02 2036
原创 启动Pro/TOOLKIT程序的常见错误及解决办法
一、发生读取错误’No such file or directory’ 错误原因:注册文件(一般为protk.dat)中exec_file指定的dll路径不正确。 解决办法:将注册文件中exec_file指定的路径修改正确。 可以通过【辅助应用程序窗口】查看路径信息。 二、应用程序启动失败 造成这种错误的原因有很多种:1、32位Pro/E加载了64位的Pro/TO
2018-01-13 18:09:09 34135 5
原创 Pro/TOOLKIT注册文件
想要Pro/E加载同步模式的Pro/TOOLKIT程序,需要用到注册文件。 注册文件包含Pro/TOOLKIT应用程序的路径,text文件夹的路径等信息,Pro/E通过注册文件中包含的信息,找到Pro/TOOLKIT程序并加载。 以下是一个典型的注册文件的示例: name Test_wf5 startup dll exec_file C:\Test_wf
2018-01-13 18:01:38 4533
原创 手把手教你开发Pro/TOOLKIT应用程序(三)
请先阅读: 手把手教你开发Pro/TOOLKIT应用程序(一) 手把手教你开发Pro/TOOLKIT应用程序(二)这篇主要讲解第一篇中Pro/TOOLKIT代码的具体含义。Line 1~12包含Pro/TOOLKIT常用的头文件。Line 15~24函数声明。Line 26~55 user_initializeuser_initialize为Pro/TO
2018-01-13 17:57:58 3948 2
原创 手把手教你开发Pro/TOOLKIT应用程序(二)
请先阅读:手把手教你开发Pro/TOOLKIT应用程序(一) 在编写信息文件前,首先在工程文件夹下新建Bin文件夹,然后将第五步生成的test_wf5.d ll拷贝到Bin文件夹下。六、编写信息文件信息文件是用来定义Pro/TOOLKIT程序菜单及菜单项显示信息的文本文件。其内容以四行为一组,每行代表的意义如下: * 菜单或菜单项的名称 * 菜单或菜单项的英文显示 * 菜单或
2018-01-13 16:42:15 7475 6
原创 手把手教你开发Pro/TOOLKIT应用程序(一)
前言本教程采用VS2008 + Pro/E Wildfire5.0来讲解怎样开发Pro/TOOLKIT应用程序。 开发Pro/TOOLKIT应用程序时,Pro/E和Visual Studio的版本需对应,否则很难搭建开发 环境,其对应关系如下: * Wildfire 4.0 * Wildfire 5.0 * Creo 1.0 * Creo 2.0 本教程所述的方法完全适用于Wil
2018-01-13 16:22:30 15196 7
原创 Pro/TOOLKIT编程技巧:查找Pro/TOOLKIT示例代码
在进行Pro/TOOLKIT编程时,我们常常对某些API函数不知道如何使用。 这时我们可以参照Pro/TOOLKIT提供的示例代码。 可以通过Visual Studio的【查找和替换】功能搜索Pro/TOOLKIT的示例代码。 如下图所示: 我们在Pro/TOOLKIT提供的示例代码中,搜寻ProUdfCreate。
2018-01-13 15:57:40 1368 1
原创 Pro/TOOLKIT帮助文档的使用
Pro/TOOLKIT提供了比较详细的帮助文档:【Pro/E安装目录】\protoolkit\protkdoc\IE Swing.html。可以直接在浏览器中打开,如果无法打开,请参看本文后面的解决方法。 用好帮助文档是进行Pro/TOOLKIT开发的关键。 帮助文档的使用我们可以通过【Find】按钮进行模糊或精确查找。(如下图) 或者将类别切换到【User Guide】模
2018-01-13 15:52:28 5079 1
原创 Pro/E Wildfire5.0二次开发环境配置
编译器:VS2008头文件路径:【Pro/E安装目录】\prodevelop\includes 【Pro/E安装目录】\protoolkit\includes库文件路径:32位: 【Pro/E安装目录】\prodevelop\i486_nt\obj 【Pro/E安装目录】\protoolkit\i486_nt\obj64位: 【Pro/E安装目录】\prodevel
2018-01-13 15:47:17 1675
原创 Pro/E Wildfire4.0二次开发环境配置
编译器:VS2008头文件路径:【Pro/E安装目录】\prodevelop\includes 【Pro/E安装目录】\protoolkit\includes库文件路径:32位: 【Pro/E安装目录】\prodevelop\i486_nt\obj 【Pro/E安装目录】\protoolkit\i486_nt\obj64位: 【Pro/E安装目录】\prod
2018-01-13 15:41:36 673
原创 Pro/E Wildfire3.0二次开发环境配置
编译器:VS2005一、新增头文件路径Tools->Options->Projects and Solutions->VC++ Directories->Include files [Pro/E安装路径]\protoolkit\includes [Pro/E安装路径]\prodevelop\includes [Pro/E安装路径]\protoolkit\protk_appls\i
2018-01-10 23:12:09 1238
原创 Creo2.0二次开发环境配置
编译器:VS2010头文件路径:【Creo安装目录】\Common Files\【版本号】\prodevelop\includes 【Creo安装目录】\Common Files\【版本号】\protoolkit\includes 示例:C:\PTC\Creo 2.0\Common Files\M050\protoolkit\includes库文件路径:32位: 【Cr
2018-01-10 22:58:09 3640
原创 Creo1.0二次开发环境配置
编译器:VS2010头文件路径:【Creo安装目录】\Common Files\【版本号】\prodevelop\includes 【Creo安装目录】\Common Files\【版本号】\protoolkit\includes 示例:C:\PTC\Creo 1.0\Common Files\M050\protoolkit\includes库文件路径:32位: 【Cr
2018-01-10 22:51:58 1151 1
翻译 矩形区域与圆心区域的碰撞检测
这是一篇关于矩形与圆形区域碰撞检测的文章。虽然这常常被认为很复杂,但实际上却相当简单。首先,你也许知道怎样检测圆与点是否碰撞:测试圆心与点的距离是否小于等于圆的半径。DeltaX = CircleX - PointX;DeltaY = CircleY - PointY;return (DeltaX * DeltaX + DeltaY * DeltaY) 其实,矩形与圆的碰撞检测
2018-01-07 21:24:21 1052
原创 AutoCAD .Net 获取用户输入——GetKeywords
GetKeywords用于让用户输入关键字,示例用法如下:Document doc = Application.DocumentManager.MdiActiveDocument;PromptKeywordOptions options = new PromptKeywordOptions("\n请输入关键字: ");options.Keywords.Add("Circle", "Circle"
2018-01-01 11:55:08 3233
原创 AutoCAD .Net 获取用户输入——GetString
GetString用于让用户输入字符串,示例用法如下:Document doc = Application.DocumentManager.MdiActiveDocument;PromptStringOptions options = new PromptStringOptions("\n请输入字符串: ");options.AllowSpaces = true;PromptResult re
2018-01-01 11:25:46 1819
原创 AutoCAD .Net 获取用户输入——GetPoint
GetPoint用于让用户指定点,示例用法如下:Document doc = Application.DocumentManager.MdiActiveDocument;PromptPointOptions options = new PromptPointOptions("\n请指定点: ");PromptPointResult result = doc.Editor.GetPoint(opt
2018-01-01 10:52:24 3181
原创 AutoCAD .Net 获取用户输入——GetAngle
GetAngle用于让用户指定角度值Document doc = Application.DocumentManager.MdiActiveDocument;double angle = 0.0;PromptAngleOptions options = new PromptAngleOptions("\n请指定角度: ");options.UseBasePoint = true;option
2017-12-30 16:20:30 1460
原创 AutoCAD .Net 获取用户输入——GetDistance
GetDistance用于让用户指定距离值Document doc = Application.DocumentManager.MdiActiveDocument;double value = 0.0;PromptDistanceOptions options = new PromptDistanceOptions("\n请指定距离: ");options.BasePoint = new Po
2017-12-29 22:52:04 1018
原创 AutoCAD .Net 获取用户输入——浮点型数值
GetDouble的用法示例Document doc = Application.DocumentManager.MdiActiveDocument;double value = 0.0;PromptDoubleOptions options = new PromptDoubleOptions("\n请输入浮点数: ");options.AllowNone = true;options.De
2017-12-29 22:06:11 861
原创 AutoCAD .Net 获取用户输入——整型数值
AutoCAD .Net中的Editor类提供了各种获取用户输入的方法,常用的有: * GetInteger 获取整型数值 * GetDouble 获取浮点型数值 * GetDistance 获取距离值 * GetAngle 获取角度值 * GetPoint 获取坐标点 * GetString 获取字符串 * GetKeywords 获取关键字
2017-12-24 22:12:39 2224
原创 AutoCAD .Net 外部参照 XRef
在 AutoCAD 中,可以通过 xref 命令来创建外部参照。那外部参照在 AutoCAD 数据库中是如何存储的呢?我们如何通过程序来获取外部参照? 1、外部参照是以块表记录(BlockTableRecord)的形式存储在 AutoCAD 的模型空间块表中的。 2、BlockTableRecord 中的属性 IsFromExternalReference 为 true 时,表明该块表记录为外部
2017-12-17 10:15:18 2994
OpenGL安装文件
2012-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人