- UID
- 763962
- 积分
- 3
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2016-9-23
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
网上共享的lisp程序可以实现:
(setq r_zm70 (assoc 70 e))
(setq c_zm71 (assoc 71 e))
(setq r_dist_zm44 (assoc 44 e))
(setq c_dist_zm45 (assoc 45 e))
(setq e (subst (cons 44 0) r_dist_zm44 e))
(setq e (subst (cons 45 0) c_dist_zm45 e))
(setq e (subst (cons 70 0) r_zm70 e))
(setq e (subst (cons 71 0) c_zm71 e))
(setq e (subst (list 100"AcDbBlockReference") (list 100"AcDbMInsertBlock") e))
我自己用arx编程,最好一句实现不了,代码如下,求大神指点:
AcDbMInsertBlock *pMBlk;
if(acdbOpenObject(pMBlk,idObj,AcDb::kForWrite) != Acad::eOk)
return;
pMBlk->setRowSpacing(0.0);
pMBlk->setColumnSpacing(0.0);
pMBlk->setRows(0);
pMBlk->setColumns(0);
pMBlk->close();
最后一句我试着直接修改dxf组码,但失败了:
struct resbuf *entdata,*tmpreb;
entdata = ads_entget(ent);
if(entdata==NULL)
{
return;
}
str = _T("AcDbBlockReference");
ACHAR appName[32];
memcpy(appName, str, 32);
for(tmpreb=entdata;tmpreb!=NULL;tmpreb=tmpreb->rbnext)
{
str = tmpreb->resval.rstring;
if(API_stricmp(str,_T("AcDbMInsertBlock")) == 0)
{
tmpreb->resval.rstring = (ACHAR*)malloc((API_strlen(appName)+1)*sizeof(ACHAR));
API_strcpy(tmpreb->resval.rstring, appName);
break;
}
}
ads_entmod(entdata);
ads_relrb(entdata);
|
|