在autocad中 利用refedit命令可以实现参考模型的编辑,而长事物管理提供的函数和类能够检出参考模型中的实体进行编辑,并能够返回修改到参考模型中(这地方有些不确定:1,检回的模型只是在参考块中修改了,参考模型的原文件中并没有进行修改, REFEDIT能够对原文件进行修改)。
下面是利用长事物管理进行参考模型检出的例子(该例子来自http://adndevblog.typepad.com/autocad/2012/04/-mimic-the-workflow-of-refedit-by-long-transaction.html)本人进行了处理,不考虑嵌套的参考模型,直接选择一个参考模型然后检出这个模型进行编辑,通过检入,修改了参考模型,但是没有修改原来的参考模型文件。
//利用长事物处理机制进行参考模型文件的编辑
//global variables for the two commands checkout and checkin
// ID of long transaction
AcDbObjectId long_trans_id;
//errorMap of long transaction
AcDbIdMapping error_map;
/////////////////////////////////////////////////////////
void testcheckout() { ads_name ename;
ads_point ptResult;
ads_matrix adsmat;
struct resbuf *info;
AcDbObjectI