cad.arx 自定义实体之编译第一个项目(甜头)
本篇不从零开始讲如何制造自定义图元,而是教新手们如何设置了环境之后编译张帆书中的代码.
利用vs2010编译 张帆<AutoCAD ObjectARX(VC)开发基础与实例教程>一书中的自定义图元课程代码.
因为张帆都敲完了,我们肯定要先编译一下他的,再仔细地去看他的书,来学习c++,
看懂代码这种事情,就教给各位自己去学习....
诉求点:
张帆书中所使用的vs2005很破旧,但是开发环境必须有,它有平台集v80.
而vs2010敲代码比vs2005好,ctrl+鼠标滚大字体等等,也就诞生出这篇文章了.
以及vs2010是浩辰cad使用的版本,以及e大说了在vs2010上面可以编译各个版本的arx.
虽然现在已经出到了vs2019....
我这么做的目的,是为了避免在其他教程可能会出现的"向导创建"自定义图元的情况.
因为只要用了向导,发生有可能出现的bug,新手就会卡在这里,必须有一份纯代码,让新手去看.
[配置编程环境]
必须的环境:
win10系统环境(貌似xp及以上都可以吧...)
下载Microsoft Visual Studio 2005并安装(安装最后有个错误,不要紧的)
下载Microsoft Visual Studio 2010并安装 +SP1补丁也要安装......目的是在这里敲代码
下载Daffodil.ENU.msi 为了在vs2010上用v80平台集.(貌似我忘记怎么安装的了,下一步下一步?.....)
下载Acad2008 并安装,请保持默认安装在c盘,因为这样可以快速地使用上书中的代码.最终的安装路径是 C:\Program Files (x86)\AutoCAD 2008
安装SDK的时候,要加注册表用管理员方法,见 edata 博客这篇博文
路径就选择到 D:\ObjectARX 2008,
然后 D:\ObjectARX 2008\utils\ObjARXWiz 安装里面的向导.. (注意,本篇不使用这个向导,因为向导新建自定义图元会出现一些bug下面会讲
下载张帆的书和代码...
非必要的vs插件:
下载 Visual AssistX 番茄助手,我用是人家翻译的一个中文版,这个是用来敲代码的时候有个提示...
下载 GhostDoc_v4.9 ///可以快速出现头函数注释
下载 IndentGuide 令代码括号有条参照线.....
[向导的bug]
百度有过一篇,用纯向导的方式做自定义实体的文章,但是因为win10的关系,htm文件的版本貌似被微软更改过,导致所有向导文件会有个错误....
e大说过的方法我都试过了,结果没用.....
即使我在xp虚拟机上面运行也有错(可能是我运行环境的问题),所以必须有个纯代码执行让我迫切的知道自定义实体的构成,而非解决这个bug....
[开干]
解压张帆的代码,看到这两个文件,
Common 是张帆的类库(内裤?)
TriangleEntity 是关于一个三角形自定义图元的,在书中的9.2章节上面.
进入 TriangleEntity 文件夹,用 vs2010 打开 TriangleEntity.sln 然后按图片走流程吧.....
然后完成就可以了....
用ctrl选择两个项目,右击属性,配置所有的配置,选择v80,
如果没有v80,代表你没有安装好 Daffodil.ENU.msi
同样的去修改这两个地方
这样就可以编译了...........若不行,请检查下面的位置:
如果有感叹号,表示路径错了.
如果你的cad2008是默认安装的话,那么箭头的路径是 C:\Program Files (x86)\AutoCAD 2008 这里就不用改,
不是的话就卸载这两个,再改去cad2008的安装路径, 或者改到 D:\ObjectARX 2008\inc
ZfgkTriangleEntityDB 这个也可能出现感叹号,不过先不用理它,因为是编译成功就会自动编译好的.
CSharpUseTriangleEntity 是个c#工程
TriangleEntityDB 自定义图元的DBX工程
VcUseTriangleEntity 控制自定义的逻辑arx工程
如果出现这样的报错,
error C1107: 未能找到程序集“acdbmgd.dll”: 请使用 /AI 或通过设置 LIBPATH 环境变量指定程序集搜索路径
就按图修改到你自己的cad2008安装路径上, 因为这里提供给c#工程的命名空间的位置.
应该没有问题了吧.....
[调试]
把这个c#项目的启动项目路径设置为cad的,
命令行参数是不显示启动的标识.
设置好了就直接用F5,启动cad,
输入netload 加载这个 cs开头的dll.
然后输入命令 AddTriangle ,点击鼠标三次..
你就画了一个自定义图元出来了.
这样已经结束了本教程.....
[加载的bug?]
在winxp的虚拟机内安装了cad2008,不知道为什么使用 netload 之后无法加载dll,可能是依懒性地狱.....
所以我直接在win10上面干了.
[net代码怎么看]
在c#的工程下,刚刚输入命令,和输入三个点的就在这里...
[纯arx]
但是我们要纯arx的话,就要去干掉c#的部分....
这里是arx的生成位置,它和辅助的dll会一起生成在这里的.
调试注意了,直接拖拉arx是不可以的,
可以先 netload dll,再拖拉 arx.
用F5就可以启动并自动加载你的dbx和arx.
不过因为改成了.dbx代表了c#工程不能顺利引用它,也就是达到你能纯arx的目的....
找不到<map>的错误是:
[vc++目录] 包含目录要写完整:
D:\ObjectARX 2008\inc;$(IncludePath)
[vc++目录] 库目录要写完整:
D:\ObjectARX 2008\lib;$(LibraryPath)
cad.arx 自定义实体之编译第一个项目(甜头)的更多相关文章
- 解决双击dwg文件ARX自定义实体提示代理的问题
双击dwg文件的时候,如果没有通过注册表设置会提示代理实体. 注册表自动加载arx 注册表参考路径 R18.1 是cad版本 ACAD-9001:409 是cad的地区语言,409是英文 ,804是中 ...
- 用ARX自定义实体
本文介绍了构造自定义实体的步骤.必须继承的函数和必须注意的事项 1.新建一个从AcDbEntity继承的类,如EntTest,必须添加的头文件: "stdarx.h",&quo ...
- 【CAD】自定义实体的步骤(转)
本文介绍了构造自定义实体的步骤.必须继承的函数和必须注意的事项 1.新建一个从AcDbEntity继承的类,如EntTest,必须添加的头文件: "stdarx.h"," ...
- CAD绘制自定义实体(com接口)
在cad使用过程中,用户可以绘制自定义实体.点击此处下载演示实例. 调用DrawCustomEntity函数,绘制一个自定义实体对象. 下面代码绘制一个自定义实体,C#代码实现如下: private ...
- ARX自定义实体
本文介绍了构造自定义实体的步骤.必须继承的函数和必须注意的事项 1.新建一个从AcDbEntity继承的类,如EntTest,必须添加的头文件: "stdarx.h"," ...
- CAD把自定义实体,变成普通实体(com接口VB语言)
主要用到函数说明: MxDrawXCustomEvent::MxDrawXCustomEntity::explode 把自定义实体,变成普通实体,详细说明如下: 参数 说明 LONGLONG lEnt ...
- CAD实现自定义实体夹点移动(com接口VB语言)
主要用到函数说明: MxDrawXCustomEvent::MxDrawXCustomEntity::moveGripPointsAt 自定义实体事件,自定义实体夹点被移动,详细说明如下: 参数 说明 ...
- CAD得到自定义实体拖放夹点(com接口VB语言)
主要用到函数说明: MxDrawXCustomEvent::MxDrawXCustomEntity::getGripPoints 自定义实体事件,得到拖放夹点,详细说明如下: 参数 说明 LONGLO ...
- CAD控件使用教程 自定义实体的实现
自定义实体的实现 1 . 自定义实体... 3 1.1 说明... 3 1.2 类的类型信息... 3 1.3 worldDraw.. 4 1.4 ...
随机推荐
- Linux操作:使用grep排除搜索的目录
使用grep时,当一个目录下有一个包含很多文件的目录,但也不想搜索它,怎么办? 使用 --exclude-dir 选项. 单个目录示例: grep -rni 'http' --exclude-dir= ...
- JS基石之-----常用方法封装的js库
解析 URL Params 为对象 let url = 'http://www.domain.com/?user=anonymous&id=123&id=456&city=%E ...
- sap设置SE38编辑器背景色
1.SE38,随便找个程序进入,编辑模式. 点击客户端最右下角的文件夹图标: 2.设置normal 背景颜色: 3.退出,重新进就可以了. 这里很多其他类型的颜色和字体设置,根据个人爱好调整.
- 一、Hadoop入门概述
一.Hadoop是什么 Hadoop是一个由Apche基金会所开发的分布式系统基础架构. 主要解决海量数据的存储和海量数据的分析计算问题. 广义上来说,Hadoop通常是指一个更广泛的概念—Hadoo ...
- django rest_framework vue 实现用户登录
django rest_framework vue 实现用户登录 后端代码就不介绍了,可以参考 django rest_framework 实现用户登录认证 这里介绍一下前端代码,和前后端的联调过程 ...
- Maven打包时出现“Show Console View”错误弹出框,错误详情为“An internal error has occurred. java.lang.NullPointerException”的解决方法
今天为项目打包时出现了下面的错误提示: 打开Details里面写的是“An internal error has occurred. java.lang.NullPointerException”.在 ...
- Shiro RememberMe 1.2.4 反序列化漏洞详细复现
0x00 前言 今天上班的时候收到了一个复测的任务,打开一看,shiro反序列化漏洞,What?这是个什么东西,经百度查找后才知道,原来是Java的开发框架,好吧,还是没听说过..由于初测报告上的过程 ...
- matplotlib---画等高线
contour - 绘制等高线 mp.contour(x, y, z, 等高线条数,colors=颜色, linewidth=线宽)#等高线绘制 contourf - 填充等高线 mp.contour ...
- pymysql 增删改 查 索引
pymysql 模块的使用 pip install pymysql username = input ("请输入用户") pwd = input ("请输入密码" ...
- Latex使用过程中的一些总结
本文主要总结在使用Latex过程中遇到的一些问题及解决方案. 一:关于参考文献 1.如何在paper同一处用\cite命令同时引用多篇文献? 用\cite{bibtex1}\cite{bibtex2} ...