OpenCasCade开发环境搭建.zip
OpenCasCade开发环境搭建,从编译到一个MFC单文档例子
AI_CS6_SDK_Win_682.6 版本
这是Adobe Illustrato CS6的二次开发SDK 开发包,里面包含函数帮助,官方提供的开发例子
获得所有打开solidworks的com对象
自定义了一个类,从上往下获得所有打开的solidworks的com对象,并有一个winform实例,可以轻松获得最顶部solidworks的com对象,方便下一步的开发...
PDM开发向导(c++,c#,vb)以及一个例子.rar
solidworks的PDM二次开发,在PDM管理软件中的插件可添加生成的dll文件,在用户端可使用自定义的插件功能,文件中包含c++,c#,vb的开发向导,均有说明文档,以及由向导生成的一个例子
表达式计算Demo.rar
在很多的程序设计中,需要用户交互的数学运算,所以运算的规则不能写死,需要扩展,那么这个类可以很好解决这个难题,NCalc 是一个能够进行表达式计算的一系列程序集( Assembly )。我们主要使用 Expression 类,这个类有一个函数 Evaluate() 能够计算表达式的值。表达式采用字符串形式传入.下载包提供了源码,和一个winform应用程序的demo.
SW插件卸载工具.rar
这个功能是自己用c++写的,自己测试了SW2016,可以正常使用,大家都知道SW的插件要卸载很麻烦,软件界面没有地方可以方便的操作,于是就有了这个小工具!
富文本编辑框COleRichEditCtrl
这个架构给我带来的一个惊喜(对我而言)是我获得了巨大的“轰动”。当我出发时,我唯一的目标是显示一个位图,但我最终得到一个可以显示任何 OLE对象的控件。包含完全任意对象的复合文档可以正常工作:位图,视频和音频剪辑,Office文档(Word,Excel,PowerPoint)等。还可以包含任何其他内容(如PDF文件和HTML文件),双击内容的图标即可启动内容,但除非OLE服务器应用程序是,否则不会有这些对象的就地显示为就地OLE显示编写和配置。
有例子----可加载rtf文件 和 记事本 其他格式 需要转换
PMEdit--富文本框
说一下本文本框的设计:
1、文本框代码量小只有5000多行,全部是核心代码
2、文本框的设计是为了给PMGrid表格作为文本输入用的,PMGrid是一个美丽的类似于Excel的富文本表格,由于此表格正在开发中暂时就不开源了,样例可以看看源代码中的PMGrid.exe,如果有需要也可以给我发邮件feirench@gmail.com。
3、文本框内存占用小,除了作为背景双缓存的几个bitmap,就只是几个int数据,所以内存还是很放心的
4、文本框通篇使用了json作为数据存储,Json具有强大的灵活性,如果是界面开发,将本文本框作为基本输入要素,都不需要数据结构了一个json搞定,将程序作为一个大的json,下面挂页面json,页面下挂多个文本框json就OK了。
5、本文本框的缺点就是没有做增量分析,导致数据量过大的时候会会影响编辑效果,但是5000行文本的编辑是完全可以搞定的,毕竟作为表格的输入数据量不会很大的,如果要实现更大数量级的编辑花费的功夫就需要成倍了,对于一个独立开发者来说可能就得不偿失了!
6、由于图片是全部加载到内存中,如果图片太多也会占用很大的内存
7、文本框未支持国际化,现在仅设计为中文环境中使用,版本二会进行改进
8、很大的特点就是支持在explore中复制文件然后粘贴到文本框中,支持两种类型文件的粘贴:纯文本、图片,支持多选
9、本文本框的Json是本人自己设计的扩展json类型TJSON,可以保存二进制数据,可以添加注释。它的效率应该还是不错的,易用性方面也非常不错,解析和读写参考了CJSON的源代码。开源的所有JSON解析源码中,性能最高的就应该是CJSON了,但是易用性方面也是最差的,可能300行的代码用CJSON就需要写上400行代码,有得也有失去。TJSON的数据量比较小,sizeof(TJSON)==40,并且具有遍历迭代器TJSONIterator、TJSONConstIterator,易用性就跟vector等容器一样;内部实现直接用的是map和vector,性能瓶颈也就是map、vector的性能瓶颈。
二、PMEdit是一个在windows下的富文本框,它能显示文字、编辑文字、显示图片、改变图片显示大小,具有行号、行图标、改变字体属性等特性。
PMEdit完成从底层开发,没有用任何windows控件,代码直接基于最基本GUI、windows消息,很容易移植到OpenGL或其他平台下。
三、样例显示
A、文本编辑
B、图片显示
C、GIF动画展示
D、富文本显示
E、改变背景
F、表格的样例
.........
BlockUI控件中文帮助
制作者
1,乐清*梅雷 部分内容参考百度QQ:1821117007 一共大概花了15个小时翻译以及制作。
2,彭辅军,网名:小白鼠,QQ:3243729373 二次开发QQ群:331643674 在梅雷基础上增加了内容,一共大概花了20个小时翻译以及制作。
本帮助文档可复制,可传播,但需要保留制作者信息,谢谢!
其中大部分内容测试比对过,部分没有进行测试比对效果。请以实际效果为准。本文只做参考。
注:由于BlockUI更新比较频繁,各版本之间会存在差异,有些版本的控件的属性名并没有那么多,或者此帮助文件并没有列进去,那么可以通过下面方法查看当前版本某控件的所有的属性名和类型:
void get_block_ui_type_name(NXOpen::BlockStyler::UIBlock* BLOCK_UI_name)
{
Session*theSession=NXOpen::Session::GetSession();
ListingWindow*lw=theSession->ListingWindow();
lw->Open();
NXOpen::BlockStyler::PropertyList::ListMode mode1 = BLOCK_UI_name->GetProperties()->Mode();
if (mode1==BlockStyler::PropertyList::ListModeIndexed)
{
lw->WriteLine("ListMode:ListModeIndexed");
}
else
{
lw->WriteLine("ListMode:ListModeNamed");
}
int length = BLOCK_UI_name->GetProperties()->Length();
char info[100];
sprintf(info,"数量:%d",length);
lw->WriteLine(info);
std::vectorarray_nxstr = BLOCK_UI_name->GetProperties()->GetPropertyNames();
for (int i=0;iWriteLine();
BlockStyler::PropertyList::PropertyType type = BLOCK_UI_name->GetProperties()->GetPropertyType(array_nxstr[i]);
if(type==0)
lw->WriteLine("类型是:String 名称:"+array_nxstr[i]);
else if(type==1)
lw->WriteLine("类型是:Double 名称:"+array_nxstr[i]);
else if(type==2)
lw->WriteLine("类型是:Logical 名称:"+array_nxstr[i]);
else if(type==3)
lw->WriteLine("类型是:Integer 名称:"+array_nxstr[i]);
else if(type==4)
lw->WriteLine("类型是:Enum 名称:"+array_nxstr[i]);
else if(type==5)
lw->WriteLine("类型是:Strings 名称:"+array_nxstr[i]);
else if(type==6)
lw->WriteLine("类型是:UIBlock 名称:"+array_nxstr[i]);
else if(type==7)
lw->WriteLine("类型是:Point 名称:"+array_nxstr[i]);
else if(type==8)
lw->WriteLine("类型是:Vector 名称:"+array_nxstr[i]);
else if(type==9)
lw->WriteLine("类型是:Bits 名称:"+array_nxstr[i]);
else if(type==10)
lw->WriteLine("类型是:Tagged Object 名称:"+array_nxstr[i]);
else if(type==11)
lw->WriteLine("类型是:Array 名称:"+array_nxstr[i]);
else if(type==12)
lw->WriteLine("类型是:Integer 2d-Matrix 名称:"+array_nxstr[i]);
else if(type==13)
lw->WriteLine("类型是:Double 2d-Matrix 名称:"+array_nxstr[i]);
else if(type==14)
lw->WriteLine("类型是:Tagged Object 2d-Matrix 名称:"+array_nxstr[i]);
else if(type==15)
lw->WriteLine("类型是:Integer Vector 名称:"+array_nxstr[i]);
else if(type==16)
lw->WriteLine("类型是:Double Vector 名称:"+array_nxstr[i]);
else if(type==17)
lw->WriteLine("类型是:Tagged Object Vector 名称:"+array_nxstr[i]);
else if(type==18)
lw->WriteLine("类型是:File 名称:"+array_nxstr[i]);
else if(type==19)
lw->WriteLine("类型是:Selection Filter 名称:"+array_nxstr[i]);
else if(type==20)
lw->WriteLine("类型是:Undefined 名称:"+array_nxstr[i]);
}
}
//下面是几个示例:控件的值的获取
。。。。。。。
矩阵操作函数库
库为开源库,有例子;函数有:矩阵乘法(矩阵*矩阵),矩阵 除以单数(矩阵/double),协方矩阵 或者样本方差,转置,排序,矩阵均值等函数