AnyCAD .Net SDK 用户手册 v2013.1
AnyCAD .Net SDK 用户手册
v2013.1
1. 简介
AnyCAD .Net SDK为.Net4.0开发者提供简单易用的三维建模和三维可视化的API。SDK主要由三维建模的API和可视化管理API组成。
AnyCAD 三维建模有以下功能:
l 三维基本体,如点、线、多折线、Spline曲线、圆、椭圆、圆弧、球、长方体(立方体)、圆柱、圆锥等
l 复合体:复合线(wire)、复合体等
l 三维特征操作,如拉伸、扫掠、回转、放样、蒙面等
l 布尔操作:交叉并
所有的API都在AnyCAD.Platform名字空间下。
2. 系统设置
2.1. 添加DLL模块引用
新建或在已有的C#工程中加载DLL引用。
选择加载引用AnyCAD.SDK bin目录下的AnyCAD.Foundation.Net.dll:
加载完成后:
3. 三维可视化
代码详见AnyCAD.Basic示例。
3.1. 系统初始化
初始化AnyCAD SDK和三维可视化窗口。
3.1.1. AnyCAD.Platform.Application
Application为系统初始化类,需要在程序启动的时候创建并初始化。
Platform.Application theApplication = new Platform.Application();
//初始化插件
theApplication.Initialize();
3.1.2. AnyCAD.Platform.View
View为可视化窗口,需要在窗口加载的时候创建。一般需要在Form上创建Panel容器,作为三维可视化的窗口。
Platform.View theView;
Size size = panel3d.Size;
theView = theApplication.Create3dView("OSG", panel3d.Handle.ToInt32(), size.Width, size.Height);
3.2. 三维视图绘制
3.2.1. 常规绘制
在Panel的Paint事件中调用View::Redraw()
private void panel3d_Paint(object sender, PaintEventArgs e)
{
if (theView == null)
return;
theView.Redraw();
}
3.2.2. 自动刷新视图
为窗体添加一个计时器对象,在Tick事件中出发绘制命令
private void timerDraw_Tick(object sender, EventArgs e)
{
theView.RequestDraw();
theView.Redraw();
}
4. 三维建模
4.1. 建模API
三维建模API由BrepTools类实现,每个都返回TopoShape对像。详细的API参考VS对象管理器:
4.2. 模型显示
由BerpTools创建的TopoShape对象,需要转换成PrsNode对象才能在三维视图中显示:
private void ShowTopoShape(TopoShape topoShape, int id)
{
PrsNodeManager nodeManager = theView.GetNodeManager();
Entity entity = new Entity();
entity.SetTopoShape(topoShape);
PrsNode node = nodeManager.CreateSceneNode(entity, id, false);
if (node != null)
{
// 显示
nodeManager.AddSceneNode(node);
}
}
5. 参考资料
l http://www.anycad.net
l https://github.com/anycad/AnyCAD_Sample
AnyCAD .Net SDK 用户手册 v2013.1的更多相关文章
- AnyCAD C++ SDK与OpenCASCADE互操作
AnyCAD SDK有.Net和C++两个版本,使用C++版本的AnyPlatformOcc模块可以实现与OpenCASCADE互操作. C++版本(VS2010 32bit)下载 在AOBridge ...
- AnyCAD.NET C#开发CAD软件实践(一)
免费的AnyCAD.NET发布了!俺喜欢的C#有了大展前途的机会了. 打算用这个框架搭建一套实用的CAD系统,目标是能买出去10套以上. 先看看AnyCAD.NET的自我介绍. http://www. ...
- 在Qt中使用AnyCAD三维建模控件
AnyCAD C++ SDK专为Qt框架增加了AnyPlatformQt.lib模块,在Qt中使用AnyCAD三维建模控件变得十分简单. 下载 Qt高速下载:http://pan.baidu.com/ ...
- 在MFC程序中使用AnyCAD图形控件
AnyCAD图形控件有.Net版本和C++两个版本,使用C++要比C#稍微繁杂一点.SDK中提供了针对MFC的文档视图的封装,只需改一下几个基类即可. 准备 VS2010 下载C++版本的AnyCAD ...
- 3D模型文件读写.Net SDK
AnyCAD .Net/C++ SDK支持多种3D/2D文件格式,比如BREP.STEP.IGES.STL.DXF.3DS.OBJ.FBX.SKP.IFC.DAE……等,根据使用场景提供不同的API. ...
- AnyCAD脚本模型
采用AnyCAD建立的模型, 基于AnyCAD.Net SDK在C#中展示模型:
- iOS开发——百度云推送
由于公司项目是集成的极光推送,详见下一篇博客. 集成百度推送大体相当,最好都参考官方文档集成,官方文档或官方网站教程是最好的博客. 百度Push服务SDK用户手册(iOS版) http://push. ...
- [IOT] 自制蓝牙工牌办公室定位系统 (一)—— 阿里物联网平台概览及打通端到云(硬核·干货)
目录:老少皆宜.超长干货文警告 1.快速入门创建产品 -- 小白,打包带走去吹牛 2.代码分析 -- 老炮,快速了解能用上 2.1 从start.sh分析开发环境如何自动构建 2.2 从sample. ...
- Linux下基于.NET5开发CAX应用
<<.NET5下的三维应用程序开发>>一文中介绍了如何在.NET5下使用AnyCAD开发应用程序.相比.NET4.x,.NET5一大进步便是可以跨平台,即可以在Linux.Ma ...
随机推荐
- wp8.1 Study16:网络之 使用Azure移动服务及利用Azure推送通知服务
一.WP8.1有关网络的API WP8.1与其它平台的对比如下图: 二.Azure移动服务 前提: Azure移动服务可以让使用者的数据存放在云空间,从而方便使用者的App在不同平台上的数据共享. 1 ...
- [vijos P1391] 想越狱的小杉
考前最后一题,竟然是第一次码SPFA,虽然这个算法早有耳闻,甚至在闻所未闻之前自己有过一个类似的想法,说白了就是广搜啊,但是敲起来还是第一次啊,而且这还不是真正意义上的SPFA. 完全按照自己想法来码 ...
- Cache-control使用Cache-control:private学习笔记
其作用根据不同的重新浏览方式,分为以下几种情况:(1).打开新窗口值为private.no-cache.must-revalidate,那么打开新窗口访问时都会重新访问服务器.而如果指定了max-ag ...
- hdu 2065
ps:我的天...看网上各种难..对于我这个比较懒得人...我就找规律直接水过去了...前20一个循环,注意跳过第一轮的3个数就行..然后觉得比较坑的是,那个输入N,要用long long型... 代 ...
- Nested List Weight Sum -- LeetCode 339
Given a nested list of integers, return the sum of all integers in the list weighted by their depth. ...
- Unity3D之实现背景的无限重复生成
在制作flappyBird这个小游戏中(摄像机为Orthographic),为了无限重复生成背景,可以先做好三个背景(我做的有点小),在Gamecontroller上挂一个脚本,如下: pu ...
- sqlserver OpenRowSet 对应的三种数据库驱动
在使用sqlserver数据库的OpenRowSet函数时,会遇到三种驱动方式: 1. MSDASQL驱动SELECT TOP 10 * FROM OPENROWSET('MSDASQL', 'DRI ...
- mysql workbench is well-designed
我用过mysql纯cli(command line),即纯命令行的执行环境,也用过navicat for mysql pro 破解版,甚至还用过比较高端的sqlyog,最后我还是选择了官方的workb ...
- Codeforces Round #156 (Div. 2)
A. Greg's Workout 模3求和,算最大值. B. Code Parsing 最后左半部分为x,右半部分为y,那么从中间不断去掉xy,直到其中一种全部消去. C. Almost Arith ...
- HDU 2577(DP)
题意:要求一个字符串输入,按键盘的最少次数.有Caps Lock和Shift两种转换大小写输入的方式 思路:用dpa与dpb数组分别记录Caps Lock的开关状态,dpa表示不开,dpb表示开 代码 ...