Bricscad V10的嵌套副本
任何人都想为我测试它命令=extncopy
**** Hidden Message *****
不确定它应该做什么,但我看到的是:
-将从插入中复制文本作为新的文本实体
-将从插入中复制属性作为新的文本实体
-将从外部参照中复制文本作为新的文本实体
-不会从插入或外部参照中复制直线、圆弧、多段线
-将从嵌套块(块中的块)的插入中复制属性
-不会从嵌套块的插入中复制文本
Bricscad 10.2.10, win XP Pro SP3
[更新]:
-将当前dwg中的文本实体复制到新的文本实体
-将当前dwg中的行实体复制到新的行实体
太好了,谢谢你!!
该例程似乎将受到acedNEntSelP的限制。
好消息是复制直线、弧线。来自intesrts的etc似乎在最新的测试版中运行良好。 我试图在AutoCAD2008中测试您的程序,但失败了。你会改变你的系统吗?
还是其他人?
而且,主要功能是什么?
这是为Bricscad编译的
类似于Express tools nCope
我明天下载丹的时候会试一试...还是你很酷? 实际上,我刚刚更新了附件。
我需要应用来自每个嵌套所有者的转换…如果这有意义的话..也许代码会更好地解释它。
@Greg,它可能是在创建副本,但只是将它们放在lala land中。
void copyNested( void )
{
Acad::ErrorStatus es;
ads_name ssname = {0L,0L};
ads_name adsName = {0L,0L};
ads_matrix adsMatrix;
resbuf *pbuf = NULL;
ident_init(adsMatrix);
if(HandleRtMsg(
acedNEntSelP(_T("\nSelect Nested Entity: "),adsName,g_adsPoint,0,adsMatrix,&pbuf)) == RTNORM)
{
AcDbObjectId selectedEntId , selectedOwnerId;
TRYRETVOID(acdbGetObjectId(selectedEntId,adsName));
AcDbEntityPointer selectedEnt(selectedEntId,AcDb::kForRead);
AcDbEntity *pNewEnt = static_cast(selectedEnt->clone());
if (AcDbAttribute::cast (pNewEnt))
{ // based of Alexander Rivilis's code
AcDbAttribute *pAtt = AcDbAttribute::cast (pNewEnt);
AcDbText *pText = new AcDbText();
pText->setPropertiesFrom(pAtt);
pText->setHeight(pAtt->height ());
pText->setWidthFactor(pAtt->widthFactor());
pText->setHorizontalMode(pAtt->horizontalMode());
pText->setTextStyle(pAtt->textStyle());
pText->setVerticalMode(pAtt->verticalMode());
pText->setTextString(pAtt->textStringConst());
pText->setRotation(pAtt->rotation());
pText->setPosition (pAtt->position());
pText->setNormal(pAtt->normal());
pText->setOblique(pAtt->oblique());
pText->setThickness(pAtt->thickness());
pText->setAlignmentPoint(pAtt->alignmentPoint());
delete pNewEnt;
pNewEnt = pText;
}
if(pbuf)
{
// --------------------- needed this----------------------
for(resbuf *ptmp = pbuf;ptmp!=NULL;ptmp=ptmp->rbnext)
{
es = HandleESMsg( acdbGetObjectId(selectedOwnerId,ptmp->resval.rlname) );
if(es == eOk)
{
AcDbObjectPointer selectedOwner(selectedOwnerId,AcDb::kForRead);
if(HandleESMsg(selectedOwner.openStatus()) == eOk)
{
TRYMSG(pNewEnt->transformBy(selectedOwner->blockTransform()));
}
}
}
acutRelRb(pbuf);
}
AcDbObjectId id;
CTools::AddToCurrentSpace(id,pNewEnt);
moveEnt(id);
}
}
这是属性文本的大量跳转!!!
我会在午餐时间让金砖加加载,所以我会玩。
啊,是的,做到了...我倾向于远离原点(目前在5570000,4941000或多或少)的地方工作,
我会看到如果我从插入中复制HATCH,它最终会在错误的地方。 我现在看到我测试的差点停车符号仅在x和y中缩放,因此一旦我更改,孵化副本就被正确创建。
线条,弧线,多段线,文本,属性和图案填充的副本似乎都可以从插入和嵌套插入中正常工作...
各向异性缩放:
...没关系。。。我看到消息告诉我它炮子比例不均匀
这是否仅限于系统的单个实体选择?
必须运行,如果需要,我可以稍后查看XREF,而其他人没有。
好吧,该死,好吧,我打赌Acad中的ncopy正在做一些其他的魔法(可能会爆炸)。我不知道它是如何处理未均匀缩放的块的
页:
[1]
2