自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 陷阱!关于AcDbPolyline的getPointAt

今天接到一个文件,图形检测出现了无法判断的错误。看了一下图形,有点特别,使用pe指令显示该对象与UCS不平行,使用li指令显示:LWPOLYLINE  图层: 功能分区                            空间: 模型空间                            句柄 = 23C1F3                            闭合         

2007-01-04 17:29:00 4811

原创 讨厌的VC编译项

 在程序中做了个CheckRelation(AcDbObjectId eId1, AcDbObjectId eId2)函数,用于判断两个pline线对象的空间拓扑关系,在多数情况下工作正常,很高兴的编译发布了。昨天突然发现在判断一个非常显眼的pline线交叉时居然出错了,而且都是直线段,没有圆弧——CheckRelation中关于直线段是否交叉用的是数学方法,包括CheckRelation

2006-12-26 14:45:00 1140

原创 Facade模式

    Facade模式的意图是:为了子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。    AutoCAD的ObjectARX库为我们提供了一组完善的API和类,我们可以使用这个来搭建任意的AutoCAD二次开发应用。但很多时候,我们希望能够简化一下代码,Facade模式可以帮助我们构建应用。    关于图层的操作是非常常用的

2006-06-07 16:47:00 1990

原创 setView的实现

    昨天文章中提到的setView的函数,采用了如下代码实现。其中,先获取当前DwgView的尺寸,然后在保证pt1/pt2的显示范围的前提下,以指定矩形中心点为中心,计算出符合当前DwgView比例的范围,然后再外扩,从而得到相关的显示范围。以下代码权作备份吧,如果有开发类似的也可以以此作参考。//设置当前显示范围void setView(AcGePoint2d Pt1, AcGePoi

2006-05-30 15:07:00 4899

原创 关于acedSSGet的W模式

    日前,电子报批系统用户反应计算速度慢,因此对系统进行了调整,在计算对象面积的时候,考虑到原来用acedSSGet("X",NULL,NULL,rb,sset)把可能相关的对象都找出来然后再去checkRelation,在图形较大的时候,可能做了很多无用的比较,因此修改为如下的形式:  AcDbEntity *pEnt;  AcDbExtents extents;  if(acdbOpe

2006-05-29 14:14:00 3978 1

原创 关于AutoCAD中的打开文档操作

    在AutoCAD R14的时候,SDI模式下,打开文档很多时候直接用ads_command(RTSTR, "_open", RTSTR, sFileName, RTNONE)这样的方法去打开,基于有些时候我们需要程序控制原文档是否保存(往往是放弃保存),因此往往需要检查当前文档是否已经被修改,是否会提示用户保存,否则,传入的sFileName往往就被当作了系统提问是否保存Yes/No的回答

2006-05-24 16:11:00 4278

原创 使用OLEDB连接Oracle数据库无法获取对象属性的原因

出于效率及编程便利性考虑(CAD Client的连接速度实在是有点慢),在查询对象属性数据时往往是使用OLEDB直接连接Oracle进行相关查询的。然而,使用中发现偶尔会出现无法获取对象属性的问题。经分析,发现问题出在版本功能上。SDE提供了版本管理功能,用户可以很方便的进行图形的审批、回滚等操作。然而,此功能在Oracle中需要其它表的辅助,主要包括了A表和D表。ArcSDE建立了版本后,关于表

2005-03-14 09:20:00 2439

原创 SDE CAD Client的入库出错问题

CAD Client为AutoCAD提供了读写SDE图形数据的功能。然而,在把AutoCAD中绘制的图形透过CAD Client存入SDE时,经常发生无法入库的情况,目前已经发现如下问题:1. 图形自交叉。实际上,绝大部分的错误都是图形自交叉引起的。SDE中无法解析自交叉的pline线,因此无法入库。对于闭合的pline线,可以通过测试是否能创建面域来检查是否存在自交叉问题。经常一些肉眼无法看到的

2005-03-13 17:10:00 1554

原创 R14版的ObjectARX程序向2002升级的注意事项

1. 修改include目录和lib目录2. 修改project settings    (1) link->general, 修改 对象/库模块    (2) link->output, 删除 根路径、输入点符号    (3) C++->general, 修改 预处理程序定义3. 在stdafx.h中添加对应的头文件(可从object Arx 2002 sdk自动生成代码中拷贝)。4. 在程序中

2005-03-07 15:30:00 1428

原创 随笔

人工智能一直是我很想深入探讨的领域。以符号为主还是以神经元连接为主,没有定论。以计算机仿生,也许不一定要按现实人类的模式实现,或者存在其它的智能模式更适合计算机实现。作为智能体的判断,黑室测试只是一种测试,而非智能本质。智能必须能学习。学习必须有一定格式的知识。知识可以通过外界获取,但必须可以通过系统内部演化得到。符号流派过于强调外界提供知识,因而无法实现真正智能;连接流派难以把现有知识转换,也许

2005-02-18 09:13:00 1053

原创 局域网环境下二次开发系统的升级维护

AutoCAD提供了良好的二次开发环境,用户可以很方便的针对应用开发系统。很多情况下,针对特定应用的系统需要安装到局域网内的各个终端,这给系统的升级、维护带来了一定的问题。对于可执行程序,可以采用类似smart client的自动升级机制,然而,对于arx而言,其仅仅是一个动态连接库,往往没有足够的权限去更新自身。这里,我们可以把arx及相关菜单文件放在服务器上,并编写相应的acad.lsp,并在

2005-02-03 14:59:00 1388

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除