C#/AutoCAD 2018/ObjectArx/二次开发添加圆对象的的例子(五) 1.创建一个图形对象的步骤如下见上一篇博客(三)2.添加删除实体的工具函数见上一篇博客(四) 3.添加圆的例子(完整源代码请加云幽学院免费课yunyun.ke.qq.com)   [CommandMethod("MKCircle")]        public void MKCircle()        {            //(1)获取当前活动图形数据库            Databa…
1.添加删除实体 C# ObjectARX二次开发添加删除实体是非常容易主要代码如下: 添加实体: objId = btr.AppendEntity(entity); trans.AddNewlyCreatedDBObject(entity, true); 删除实体: entity.Erase(true); 2.基本过程 在代码YunyouXueYuan命名空间,新增Tools类.这个例子非常简单,想学习AutoCAD二次开发(c#.C++等语言).BIM软件二次开发.Java.python等在…
1.创建一个图形对象的步骤如下(1)得到创建对象的图形数据库:(2)在内存中创建实体类的一个对象:(3)定义一个指向当前数据库的事务处理:(4)打开图形数据库的块表:(5)打开一个存储实体的块表记录(通常绘图都在模型空间中进行),所有模型空间的实体都存储在块表"模型空间"记录中:(6)将该对象添加到块表记录中:(7)把对象添加到事务处理中:(8)提交事务处理. 2.添加直线的例子 using System; using System.Collections; using System.…
1.开发环境配置: (1)安装AutoCAD2018: (2)安装VS2015: (3)安装ObjectARX 2018类库: (4)安装ObjectARX 2018 .NET开发向导(ObjectARXWizards.msi). 2.利用向导新建一个ObjectARX项目:File>NEW>project,在项目名称输入yunyou.ke.qq.com,确定. 3.确定后弹出如下对话框: 4.确定后生成项目: 5 .向导自动添加两个类,一个继承IExtensionApplication接口,…
这些函数对大家很有用,如果想获取详细源代码请加云幽学院yunyou.ke.qq.com报名免费课程,如果想学习更系统.更全面的知识请报名收费课程,有大量开发案例共享. 1.获取模型空间中所有实体 #region "获取模型空间中所有实体" /// <summary> /// 获取模型空间中所有实体 /// </summary> /// <param name=""></param> /// <returns>…
objectARX二次开发的时候,经常会用到一些重复使用的类,如果类已经足够的好,那么我们可以编译成静态库,加快开发和编译的速度,提高工作效率. 环境vs2010+objectARX2012wizard,以及各种编译器平台,我这里主要是用v90 编译器平台. 下面就开始添加一个win32项目. 在win32应用程序向导中,我们下一步,直接勾选静态库,MFC和预编译头. 项目新建后,设置项目属性. 在c/c++选项的预处理器中,我们这里删除_DEBUG,因为这个“预定义"可能会影响一些类的问题,这…
https://blog.csdn.net/u011170962/article/details/37755201 要创建一个图形对象,需要遵循下面的步骤:1.得到创建对象的图形数据库:2.在内存中创建实体类的一个对象:3.定义一个指向当前数据库的事务处理:4.打开图形数据库的块表:5.打开一个存储实体的块表记录(通常绘图都在模型空间中进行),所有模型空间的实体都存储在块表“模型空间”记录中:6.将该对象添加到块表记录中:7.把对象添加到事务处理中:8.提交事务处理. [CommandMetho…
话说笔者最近想用新机子上装的AutoCAD ObjectARX 2018来进行二次开发,兴致勃勃安装了ARX API和向导, 然后打开VS2015,新建项目,无法新建. 折腾了一下,还是没有解决,后面忽然想起来原来开发AutoCAD 2013的ARX 应用程序时,因为向导模板里面的Autodesk.ARX-2013.Props的文件里面有些许错误,导致无法创建.莫非2018也有同样问题? 用everyThing 找了下Autodesk.ARX-2013.Props文件,如下图: 打开文件,发现果…
开发环境:Win10 + VS2010 + Qt 4.8.6 + QGis 2.14.4 其实本文实现的功能类似于QGis中“添加文本数据图层”的一个简化版,本文不会涉及到对话框的使用,不通过与用户互交的方式创建要素,而是直接通过代码方式添加点要素,起到一个抛砖引玉的作用. (一)先将整个流程大概梳理下: 1.首先创建一个临时(memory)矢量图层 ; 2.将创建的图层添加到地图画布中 ; 3.创建几何要素 ; 4.将几何要素添加到矢量图层中 ; 5.更新图层范围并刷新画布 . (二)程序代码…
每当提起UDO总是会让我想起大专毕业那会失业找工作,后来有个宝贵机会去了软件公司上班,拿到了我人生中的第一个NX二次开发项目,一个关于测量汽车前后左右摄像头的项目.当时那个项目就用到了UDO,对于只看了两个月唐康林工程师二次开发视频教程就跑出来找工作的我,显然是不会UDO的,后来采用了将handle值写到部件属性里,然后每次打开工具对话框前先去部件属性里读,在给到对话框里.在然后项目没做完我就特么滚蛋了. 时隔差不多两年,以前技术底子太差,好多东西都不懂,直到最近我对UDO才有了一些认知了解,会…
上一节中我们在initApp()函数中,将helloWorld()函数注册给了CAD主程序,注册指令的字符串为“Hello”. void initApp() { acedRegCmds->addCommand(_T("HELLOWORLD_COMMANDS"), _T("Hello"),_T("Bonjour"), ACRX_CMD_TRANSPARENT,helloWorld); } 如果你用过CAD的话会知道在CAD中经常用类似命令行的…
经常遇到性能测试的时候,有100万条数据,才用了5万条,中途因为某些原因停止了,继续用的时候, 要么要清除DB中数据,要么要清除数据源中的数据, 觉得特别麻烦, 希望改写下代码,将 Ignore first line (only used if Variable Names is not empty)一列变成开始圆形需要选择的行数, StartLineNumber或者新增一个属性,StartLineNumber,原有的属性不需要更改. 看了一下大概涉及的java文件如下:config目录下的CS…
NX11+VS2013 #include <uf.h> #include <uf_modl.h> #include <uf_disp.h> UF_initialize(); //创建块 UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔 ] = { 0.0, 0.0, 0.0 };//设置原点 ] = { " };//设置长宽高 tag_t BlkTag = NULL_TAG; UF_MODL_create_block1(Sig…
CAD2007版本 acDoc.Editor.WriteMessage( string.Format("[{0:F1},{1:F1},{2:F1}] - [{3:F1},{4:F1},{5:F1}]\n", acText.GeometricExtents.MinPoint.X, acText.GeometricExtents.MinPoint.Y, acText.GeometricExtents.MinPoint.Z, acText.GeometricExtents.MaxPoint.…
NX9+VS2012 #include <uf.h> #include <uf_obj.h> #include <uf_modl.h> #include <uf_part.h> UF_initialize(); //遍历当前显示部件 std::vector<tag_t> SolidVector; tag_t ObjectTag = NULL_TAG; int Type, SubType, Body_Type; ]; UF_OBJ_cycle_ob…
NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_obj.h> UF_initialize(); UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔 ] = {0.0, 0.0, 0.0};//设置原点 ] = {"};//设置长宽高 tag_t BlkTag = NULL_TAG; UF_MODL_create_block1(Sign, Corner_pt…
#include <uf.h> #include <uf_modl.h> #include <uf_obj.h> UF_initialize(); //创建块 UF_FEATURE_SIGN sign = UF_NULLSIGN; ] = { 0.0, 0.0, 0.0 }; ] = { " }; tag_t block_tag = NULL_TAG; UF_MODL_create_block1(sign, block_pt, block_edge, &…
NX9+VS2012 #include <uf.h> #include <uf_obj.h> #include <uf_modl.h> #include <uf_part.h> UF_initialize(); //遍历当前显示部件所有体 std::vector<tag_t> SolidVector; tag_t ObjectTag = NULL_TAG; int Type, SubType, Body_Type; ; ]; UF_OBJ_cyc…
/**************************************************************************** Copyright (c) 2010 Siemens Product Lifecycle Management Software, Inc. Unpublished - All rights reserved File Description: Define names of all NX object types and subtypes.…
NX11+VS2013 #include <uf.h> #include <uf_modl.h> #include <uf_part.h> #include <uf_obj.h> UF_initialize(); //遍历当前part所有body lw->Open(); ; tag_t BodyTag = NULL_TAG; UF_OBJ_cycle_objs_in_part(UF_PART_ask_display_part(), UF_solid_t…
今天看到胡工对bounding_box的分享,我也来测试一番(原帖地址:https://www.ugapi.com/thread-10287.html) 获取对象的边界盒子的三个函数: 1 UF_MODL_ask_bounding_box //只能得到绝对坐标系下的边界盒子,速度快,结果不精确 2 UF_MODL_ask_bounding_box_aligned //可以得到指定坐标系下的盒子,速度快,结果不精确 3 UF_MODL_ask_bounding_box_exact //可以得到指定…
代码: int type=0, subtype=0; UF_OBJ_ask_type_and_subtype(objTag, &type, &subtype);…
使用uf5946获取镜像矩阵注意:uf5946镜像这个函数,只能用#define UF_plane_type=46这种类型的数据作为镜像面,不能用#define UF_datum_plane_type=197这种类型的数据作为镜像面. 镜像对象: extern DllExport void ufusr(char *param, int *returnCode, int rlen) { uc1601("镜像体",1); UF_initialize(); tag_t tagBody0 =…
说明:NX中的所有对象都是通过唯一的tag_t值进行标识的,这些对象大致可以分为部件对象.UF对象.表达式.链表对象和属性对象等. 部件对象的操作: 基本操作函数: 1. UF_PART_new()  新建部件 2. UF_PART_open()  打开部件 3. UF_PART_close_all()  关闭所有部件 4. UF_PART_save()  保存部件 5. UF_PART_close()  关闭部件 部件对象查询函数: 1. UF_OBJ_cycle_objs_in_part()…
1 环境搭建(VS 2017 + CAD 2019) CAD版本一般要比VS版本晚两年以上,比如我现在使用VS2017,则CAD要用2019版,至于CAD2018能不能用没试验过,有兴趣的小伙伴可以试试. (1)下载 以上两项都能在Autodesk网站下载: ObjectARX_2019.autoCADnetwizards. (2)安装ObjectARX类库 双击Autodesk_ObjectARX_2019_Win_64_and_32_Bit.sfx选个非中文路径解压,记住路径备用. (3)安…
1.CAD对象:一个CAD文件(DWG文件)即对应一个数据库,数据库中的所有组成部分,看的见(包括点.多段线.文字.圆等)和看不见(图层.线型.颜色等)的都是对象,数据库本身也是一个对象. 直线.圆弧.文字和标注等图形对象都是对象. 线型与标注样式等样式设置都是对象. 图层.编组和块等组织结构都是对象. 视图与视口等图形显示都是对象. 甚至图形和 AutoCAD 应用程序本身也是对象. 2.CAD中的容器:对于任何一个DWG文件,都会创建下列容器对像:九个固定的符号表(如下)和有名对像字典(包含…
Civil 3D构建于AutoCAD 和 Map 3D之上,在学习Civil 3D API二次开发之前,您至少需要了解AutoCAD API的二次开发,你可以参考AutoCAD .NET API二次开发学习指南.另外,如果你用到Map 3D相关的功能,你还可能需要Map 3D的开发知识,看Map 3D API二次开发学习指南. 软件准备及开发环境 AutoCAD Civil 3D 软件,推荐2014以上版本,你可以从Autodesk 官方网站下载试用版, Visual Studio 2012 或…
------------------------------------------------------------------------------------- PHPCMS本身功能已经很完善,自带的模块可用可不用,松耦合特性使其非常适合企业的二次开发. PC的默认路由在 phpcms/caches/configs/route.php 中定义,为content模块下index控制器的init方法 一. PC所有模块都在module目录下,与数据表名字相同: module目录中文件就是控…
前言 NetDh框架适用于C/S.B/S的服务端框架,可用于项目开发和学习.目前包含以下四个模块 1.数据库操作层封装Dapper,支持多种数据库类型.多库实例,简单强大: 此部分具体说明可参考博客: https://www.cnblogs.com/michaeldonghan/p/9317078.html 2.提供简单高效的日志操作类使用,支持日志写入Db和txt.支持任何数据库类型写入(包括传统sql数据库和nosql数据库等).支持同步写入日志和后台独立线程异步处理日志队列: 此部分具体说…