对象启用程序
我想我需要复习一下对象使能器....假设我们使用AutoCAD MEP (AMEP) 2010作为创作软件,使用AutoCAD Structural Detailing(ASD)2013作为查看/编辑/保存软件。
对象启用程序不是应该允许您打开带有ASD的AMEP图形,查看AEC对象,进行编辑,然后将其保存回2010年,而不会损坏AEC对象吗?
**** Hidden Message ***** 可能是2010年DWG格式(我不是ASD用户,只是一个经常使用OE的用户),但*不是* 2010年垂直(MEP)内容格式。文件的垂直内容将与用于打开它的程序版本一致,在本例中为2013。
对象启用程序几乎从不允许编辑,只允许查看。 好吧,那么OE的意义何在? 您可以查看仅启用代理图形。
如果最初的开发人员将其设置为AcDbProxyEntity::kNoOperation,则自定义对象只是可见的。
ObjectEnablers仅用于查看第三方自定义对象。故意这样做,所以如果您想编辑它们,您必须购买第三方应用程序。代理对象并不总是显示自定义对象的确切表示,但启动器会。
ObjectEnablers仅用于查看第三方自定义对象。这是故意的,所以如果您想编辑它们,您必须购买第三方应用程序。代理对象并不总是显示自定义对象的精确表示,但启用程序会。
上面突出显示的部分不完全正确,您需要对象启用程序的原因是为了让AutoCAD知道如何绘制自定义对象。如果没有它,你将得到你所看到的3d矩形或者存储在绘图文件中的非常简化的形状。
当您创建自定义对象时,您必须创建代码,以便不仅存储自定义数据,还存储几何图形以及如何绘制它。
这是在一个. dbx文件(对象启用程序)中完成的,该文件与ARX(即dll)相同,但它不包含用于用户交互的代码,该代码在ARX中为自定义对象应用程序提供。
简单来说,object enabler包含自定义对象的“蓝图”,因此AutoCAD知道如何绘制它们,ARX包含创建和修改它们的代码,这是您需要付费的ARX。干杯,米克。
ObjectEnablers仅用于查看第3方自定义对象。故意这样所以如果您想编辑它们,您必须购买第三方应用程序。代理对象并不总是显示自定义对象的确切表示,但启用程序会显示。
上面突出显示的部分不太正确,您需要对象启用程序的原因是为了让AutoCAD知道如何绘制自定义对象。没有它,您将获得您看到的3d矩形或存储在绘图文件中的非常简化的形状。
当您创建自定义对象时,您必须创建代码以不仅存储自定义数据,还存储几何形状以及如何绘制它。
这是在一个. dbx文件(对象启动器)中完成的,该文件与ARX(即dll)相同,但它不包含用于用户交互的代码,这是在ARX中为自定义对象应用程序提供的。
简而言之,对象启动器包含自定义对象的“蓝图”,因此AutoCAD知道如何绘制它们,ARX包含创建和修改它们的代码,它是你需要支付的ARX。
干杯,
米克。
哈哈,你刚才是不是说我说的不是真的,然后用更冗长的版本说我做的同样的事情?真的吗? 不。
我指出了我认为不正确的地方,并试图为可能遇到此线程的其他人推断自定义对象应用程序的工作原理。
因此,当你说“故意这样”是一个不真实的说法。您的意思是您描述的模型呈现(.dbx)和应用程序(.arx)分离不是由Autodesk故意完成的? 我同意,你确实推断了自定义对象的工作原理,但你从来没有解释为什么“故意这样”是不正确的。 开发人员仍然可以选择将他的自定义对象放在ARX中(仅限),并允许最终用户进行任何可用的操作,见图。为这个简单的自定义对象做了5分钟的快速编码,如果有人想尝试一下,请下载autocad 14和x64的arx文件。命令:我的命令例如,这个对象可以更改他的颜色或作为代理擦除。-ACRX_DXF_DEFINE_MEMBERS(。
段,AcDbEntity,。
AcDb::kDHL_CURRENT,AcDb::kMRelease电流,。
AcDbProxyEntity::允许删除|AcDbProxyEntity::允许更改,段,//AcDbProxyEntity::kNo操作。
“DBXAPP”。
"|产品设计:对象的描述"。
"|公司:您的公司名称"。
"|WEB地址:您的公司WEB站点地址"。
)。
//----- AcDbEntity协议。
#ifdef_ACADTARGET17。
Adesk::Boolean Segment::world Draw(AcGiWorldDraw*模式){。
#其他。
Adesk::Boolean Segment::subWorldDraw(AcGiWorldDraw*模式){。
#endif。
assertReadEnable();。
//返回(AcDbEntity::subWorldDraw(模式));。
。
AcGeVector3d规范;。
norm.set(0.0,0.0,1.0);。
。
//mode->几何(),圆(this->位置(),0.00000000001,范数);。
。
//mode->subEntityTraits(). setSelectionMarker(1);。
//mode->subEntityTraits(). setColor(1);。
模式->几何(),圆(this->位置(),2.0,范数);。
。
返回(Adesk::kTrue);。
}这取决于开发人员,选项可供选择。
页:
[1]
2