
ObjectARX
ObjectARX下载 ObjectARX安装 ObjectARX基础
ObjectARX常用类 ObjectARX常用技巧 ObjectARX常用函数 ObjectARX心得 ObjectARXFor C++ ObjectARX新建项目 ObjectARX反应器
软件架构师何志丹
我的源码、视频、博文、电子书可复用性、可理解性、可测试性皆强。优于工作,劣于竞赛。源码:https://gitcode.com/invite/link/a07392368f3a4ae295c0
展开
-
Objectarx 遇到的坑
3软件架构师何志丹 一,已解决。 1, 工作者线中调用acDocManager->sendStringToExecute,如果第三个参数(bActivate)为true,则在CAD2010下崩溃,CAD2018不会崩溃。 2,acad.rx会自动加载arx,但如果有多个搜索目录有acad.rx只有第一个acad.rx起作用。解决方法:用acad.lsp。如果多个搜索目...原创 2018-06-09 10:02:56 · 1684 阅读 · 0 评论 -
标注样式各属性的复制
软件架构师何志丹针对场景:setDimensionStyle 时,程序崩溃或实体消失或其它异常。 可以用此函数 看是那行崩的。 // AcDbDatabase, AcDbDimstyleTableReco...原创 2018-08-15 11:21:37 · 1238 阅读 · 0 评论 -
推导坐标旋转公式
软件架构师何志丹O是坐标原点,A(x0,y0)移动前的点,B是移动后的点(x1,y),AC垂直于X轴,垂直C。BD垂直于X轴,垂直D。令a= AOC b= AOB。因为OA、OB都是同一圆的半径,所以OA=OB,所以|BD|/sin(a+b)=|AC|/sina...原创 2018-11-16 08:47:50 · 439 阅读 · 2 评论 -
C# 加载并显示菜单
软件架构师何志丹1,支持cui和cuix。2,菜单组重复加载或显示,C#下都会崩溃。所以要判断。3,菜单加到最后。 public static AcadMenuGroup LoadMenu(AcadMenuGr...原创 2019-03-20 18:12:32 · 658 阅读 · 0 评论 -
acutPrintf crx注意事项
软件架构师何志丹virtual AcRx::AppRetCode On_kInitAppMsg (void *pkt) { AcRx::AppRetCode retCode =AcRxArxApp::On_kInitAppMsg (pkt) ; acutPrintf(_T("a")); acutPrintf(_T("b\n")); acutPrintf(_T("c\r\n"));...原创 2018-04-02 11:49:20 · 962 阅读 · 0 评论 -
根据”圆心角“求斜椭圆坐标
软件架构师何志丹 根据“圆心角”弧度(函数会将圆心角转成离心角),获取斜椭圆上的点坐标。ptCenter,椭圆中心;a椭圆长轴长度;b,椭圆短轴长度;radian,点于椭圆长轴夹角的弧度;dChangZhouAngle,长轴弧度 ...原创 2018-11-12 19:44:15 · 571 阅读 · 0 评论 -
点乘
软件架构师何志丹含义及证明向量OA和向量OB的点乘。以O为原点建立直角坐标系,令A的坐标为(x1,y1),B的坐标为(x2,y2)。则点乘的代数含义为:x1x2+y1y2。几何含义为:|OA||OB|cos<AOB通过几...原创 2018-11-17 10:07:01 · 2479 阅读 · 0 评论 -
CAD2015 C#二次开发 字体变形
软件架构师何志丹开发环境:VS2012问题描述:一个简单的WinForm窗口,一个群组控件和一个Label,都是微软雅黑12pxCAD2015下,看起来却不一样,一个明显细得多。CAD2014下,无此问题。实验了CAD2007到CAD2018,有些版本有此问题,有些版本无次问题。...原创 2019-08-18 17:28:58 · 470 阅读 · 0 评论 -
多页打印注意事项
软件架构师何志丹多页打印注意事项:1,各页的打印信息必须是兼容的。a,同一设备(PC3或系统打印机)。b,相同页面大小。c,相同原点。2,一个布局无论打印多少次,都只占一页。...原创 2018-02-24 19:01:40 · 391 阅读 · 0 评论 -
32位随机数
软件架构师何志丹声明 class DLL_SN_EXT_CLASS CRand32{public:CRand32();unsigned int rand();bool Prize(double dO...原创 2018-11-20 08:54:05 · 1327 阅读 · 0 评论 -
根据圆心角求离心角
软件架构师何志丹本文假设:椭圆长轴在X轴,椭圆中心点在坐标原点。这两个架设不影响,“圆心角”和离心角。令椭圆中心点为O,长轴半长为a,短轴半长为b。以O为中心,b为半径做圆,以下简称小圆。以O为中心,a为半径做圆,以下简称大圆。以O为端点,任意离心角度t,作射线,交小圆于A,交大...原创 2018-11-15 08:47:43 · 1418 阅读 · 0 评论 -
CAdUiDockControlBar::AssertValid未实现
软件架构师何志丹错误提示:public: virtual void __thiscall CAdUiDockControlBar::AssertValid(void)const " (?AssertValid@CAdUiDockControlBar@@UBEXXZ)说明:ObjectARX2007有此问题,ObjectARX2010 ObjectARX2014 无此问题解决方法:CAdUiDock...原创 2018-02-09 11:07:10 · 783 阅读 · 0 评论 -
正椭圆的参数方程证明
软件架构师何志丹 本文只讨论长轴和轴平行且中心点在原点的椭圆标准方程:x2/a2+y2/b2=1,令A=x/a,B=y/b,则标注方程可以变形为A2+B2=1,下文简称变形标准方程。参数方程为x=acost y = asint。t取[0,2π)。变形后,A...原创 2018-11-14 09:40:26 · 2002 阅读 · 0 评论 -
已加载菜单组 DDF
原因:cuix默认菜单组名称DDF,如果不修改容易重复。解决方案:修改菜单组名。具体步骤:1,CAD cui命令 打开“自定义用户界面"。2,打开需要加载的cuix文件。3,修改菜单组名。...原创 2021-08-31 13:43:48 · 221 阅读 · 0 评论 -
CAdUiBaseDialog 闪烁
软件架构师何志丹CModifyDialog派生于CAdUiBaseDialog,以下代码“确定”关闭对话框时 会闪烁。void CModifyDialog::OnOK(){ CAdUiBaseDialog::OnOK(); CModifyDialog::BeginEditorCommand(); NewEntityIfNeed() ; CModifyDialog::Co原创 2018-02-07 13:59:38 · 654 阅读 · 0 评论 -
setPlotType eInvalidInput
软件架构师何志丹开发运行环境:VS2010 + CAD2014X64出错代码: void SetPlotWindowArea(const double xmin,const double ymin, const double xmax,const double ymax ) { m_es = m_pPSV->setPlotType(m_pPlotSettings,AcDbPlotSetti...原创 2018-02-08 15:19:45 · 1807 阅读 · 3 评论 -
delete CCmdPaletteSet崩溃
软件架构师何志丹class CCmdPaletteSet : public CAdUiPaletteSet {//...} ;BOOL CCmdPaletteSet::Create(CWnd *pwndParent,LPCTSTR strTitle){//... AddPalette(&m_palatte); return TRUE;}崩原创 2018-01-31 17:57:56 · 331 阅读 · 0 评论 -
通过反应器屏蔽命令
软件架构师何志丹以下代码屏蔽MOVE命令,有些命令(如:PROPERTIES)屏蔽不了,甚至会死循环。class /*DLLIMPEXP*/ CEditReactor : public AcEditorReactor {//...virtual void commandWillStart(const ACHAR* cmdStr) { if原创 2018-02-05 10:53:02 · 507 阅读 · 0 评论 -
禁止PROPERTIES命令
软件架构师何志丹派生于 AcApDocManagerReactor类,并重载documentLockModeChanged。virtual void documentLockModeChanged(AcApDocument* , AcAp::DocLockMode myPreviousMode, AcAp::DocLockMode my原创 2018-02-05 11:16:13 · 593 阅读 · 0 评论 -
CCmdPaletteSet
软件架构师何志丹CCmdPaletteSet派生于CAdUiPaletteSet,CCmdPaletteSet上有一个派生于CAdUiPalette的CCmdPalette,CCmdPalette上有个对话框,此对话框的控件上鼠标单击事件:给acad发送命令。在鼠标左键单击或右键单击前,相应命令无法处理鼠标移动消息,也就是光标跟随功能没有了。setcapture后,程序无响应。原创 2018-01-31 11:26:12 · 569 阅读 · 0 评论 -
打印戳记
PLOTSTAMP设置打印戳记,再在“打印”对话框开启打印戳记。经在AutoCAD2006上操作,打印机和虚拟打印机上都可以。遗憾的是打印戳记的比例不是1:200之类,而是0.0333:0.4,不符合中国人的习惯。原创 2014-12-19 09:41:35 · 796 阅读 · 0 评论 -
arx 中对话框无法获得输入焦点的问题
增加WM_ACAD_KEEPFOCUS消息的响应函数 afx_msg LONG onAcadKeepFocus( UINT, LONG );BEGIN_MESSAGE_MAP(CPlotSingleDlg, CAcUiDialog) ON_MESSAGE( WM_ACAD_KEEPFOCUS, onAcadKeepFocus )END_MESSAGE_MAP()LONG C原创 2014-12-22 09:43:19 · 1559 阅读 · 0 评论 -
VS2002(VC7) 新建arx项目
VS2002(VC7) arx2006objectArx解压,到utils\ObjARXWiz去安装ArxWizards.msi。新建ObjectARX/DbX/OMF项目,注意:选择支持MFC,不然容易出现以下两个问题:fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #includ原创 2015-08-05 16:19:34 · 1037 阅读 · 0 评论 -
VC7(VS2002)的arx项目转VC8(VS2005)项目,注意事项
VC7(VS2002)的arx项目转VC8(VS2005)项目,注意事项:多字符改成宽字符wchar_t,改成内置类型lib,dll(arx)的生成和引用路径 很可能需要改。原创 2015-08-10 11:20:33 · 823 阅读 · 0 评论 -
AcDbRegion::createFromCurves 引起的内存泄露
es = AcDbRegion::createFromCurves(boundary,regions);// 创建面域 引起的内存泄露regions中的元素要手动delete原创 2016-04-07 11:52:21 · 1436 阅读 · 2 评论 -
实体忘记close就无法选择
今天在研究自定义实体。自定义实体可以显示,但不能选择。查了至少5份资料,反复核对发现我的实现方式没问题。于是我现在弄一个简单的自定义实体,直接派生于AcDbLine,不实现任何虚函数,还是不能选择。于是我怀疑是不是插入实体的方式不对,不插入自定义实体,直接插入AcDbLine,结果还是不能选择。经过分析发现插入实体后,忘记了close。 close后,自定义的实体也可以选择了。原创 2017-10-12 11:27:37 · 288 阅读 · 0 评论 -
自定义实体拖动过程中不实时显示
自定义实体拖动过程中不实时显示经查是:dwgInFields或dwgOutFields 有缺陷。远离:实时显示的实体实际是复制的实体,这两个函数有问题,复制就回出错。原创 2017-10-14 11:09:49 · 570 阅读 · 0 评论 -
查看一个实体的类型(包括自定义实体)
static void BJJMyGroupMyCommand () { while ( true ) { ads_point adsPt; ads_name entName; AcDbObjectId entId; AcDbEntity* pEnt; if(acedEntSel(_T("\n请选择实体或:"), entName, adsPt)原创 2017-10-23 11:14:47 · 1899 阅读 · 0 评论 -
AcGiGeometry::text 自画实体输出文字实例
void XXX::XX(AcGiWorldDraw* mode,const BJJCad::CDoublePoint& pt1,const BJJCad::CDoublePoint& pt2)//...AcGePoint3d pos(0.0, 0.0, 0.0); AcGeVector3d norm(0.0, 0.0, 1.0); AcGeVector3d原创 2017-10-24 10:29:00 · 43492 阅读 · 1 评论 -
自定义实体中如何画MText
软件架构师何志丹Adesk::Boolean XXXX::subWorldDraw(AcGiWorldDraw* mode)//...AcDbMText* pMText = new AcDbMText(); pMText->setContents(_T("何志丹")); pMText->setLocation(AcGePoint3d(0,0,0)); pMText-原创 2017-10-24 10:40:35 · 565 阅读 · 0 评论 -
修改AcDbDimension标注颜色
软件架构师何志丹{ AcCmColor color1,color2,color3; color1.setColorIndex(1); color2.setColorIndex(2); color3.setColorIndex(3); AcDbAlignedDimension* p = new AcDbAlignedDimension();原创 2017-10-24 11:31:15 · 1324 阅读 · 0 评论 -
刷新实体没效果
软件架构师何志丹p->recordGraphicsModified(); actrTransactionManager->queueForGraphicsFlush(); actrTransactionManager->flushGraphics(); acedUpdateDisplay();---可能原因,实体没关闭p->close()原创 2017-10-26 17:55:10 · 677 阅读 · 0 评论 -
AcDbAlignedDimension setDimLinePoint
软件架构师何志丹AcDbAlignedDimension setDimLinePoint 设置了新值后,再次打开后失效。setDimLinePoint 后,马上dimLinePoint结果是新值。xLine2Point 无此问题。 解决方法:同时 :if (!pDim->isUsingDefaultTextPosition()) ...原创 2017-11-11 11:59:17 · 1049 阅读 · 0 评论 -
acutPrintf AcString
软件架构师何志丹acutPrintf(_T("%s"),str); 有时正确,有时有问题,改成acutPrintf(_T("%s"),str.constPtr());原创 2017-11-17 10:09:53 · 1188 阅读 · 2 评论 -
获取当前 标注样式dimstyle
软件架构师何志丹Cad::COpenObject oo(m_pDb->dimstyle()); AcDbDimStyleTableRecord* p = oo.GetEnt(); AcString strName; p->getName(strName); acutPrintf(_T("dimstyle=%s"),strName.constPtr() );原创 2017-11-17 11:23:49 · 1317 阅读 · 0 评论 -
设置 当前样式dimstyle
软件架构师何志丹 AcDbObjectId DimStyleNameToId(const ACHAR* szName,AcDbDatabase* pDb) { AcDbObjectId id; if( NULL == pDb ) { pDb = acdbHostApplicationServices()->workingDatabase()原创 2017-11-17 11:43:31 · 1427 阅读 · 0 评论 -
修改标注样式文字填充颜色
软件架构师何志丹AcDbDimStyleTableRecord* p = oo.GetEnt(); if( NULL != p ) { AcCmColor suiceng; suiceng.setColorIndex(colorIndex); p->setDimtfillclr(suiceng); Acad::ErrorStatu原创 2017-11-18 16:55:05 · 1258 阅读 · 0 评论 -
AcDbHatch::setPatternAngle
软件架构师何志丹setPatternAngle::setPatternAngle问题提出:利用setPatternAngle::setPatternAngle设置 填充区域的角度,利用pro(属性界面)查看角度变了,但显示却没变。解决方案:调用一下setPattern就好了。测试环境:Win10 + VS2010 + CAD2014x64代码:将选中填充区域的角度设原创 2017-11-21 17:42:59 · 936 阅读 · 0 评论 -
无法利用ArxWizMFCSupport添加新类?
软件架构师何志丹之前可以用ArxWizMFCSupport添加新类,今天突然不行了。卸载重装autocad2014,VS2010两次,问题仍然存在。查看C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcprojects\Autodesk文件夹下的ArxAppWiz.vsz 文件,发现如下内容:Par原创 2017-11-29 17:31:30 · 925 阅读 · 0 评论 -
CAD2010x64 无法找到所需的动态链接库或其他文件
软件架构师何志丹a.arx调用了sn.dll, 一直可以正常加载。某种原因重装了acad2010,结果无法加载a.arx。经试验:1,不带路径,直接LoadLibraryA("a.arx") 失败。2,带路径,LoadLibraryA("d://XX//XX//a.arx")成功。a.arx和sn.dll在同一目录。所以会怀疑,autocad加载dll的顺序和win原创 2017-11-30 09:29:37 · 20058 阅读 · 0 评论