明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3170|回复: 3

如何缩放AcDbBlockReference对象

[复制链接]
发表于 2004-7-14 11:15:00 | 显示全部楼层 |阅读模式
如何缩放AcDbBlockReference对象?
setScaleFactor()如何使用? ....
AcDbBlockReference *blkRef = (AcDbBlockReference*)pEnt;
AcGeScale3d sc;
//sc->sx = sf;
//sc->sy = sf;
//sc->sz = 1.0;
blkRef->setScaleFactors(sc);
这段代码不正确! 不用下面的方法: /////////////////////////////////////////////////////////////////////////////////////////////
//
// 缩放块(INSERT), 自定义比例因子(scale factor)
//
void scaleInsert()
{
int rc;
struct resbuf *rbl;
ads_name ss;
ads_real sf; // 比例因子
long lenSS;
int idx;
ads_name ssEntName;
struct resbuf *rbSSEnt;
struct resbuf *rbTrav; rbl = acutBuildList(-4, "<AND",
RTDXF0, "INSERT",
-4, "AND>",
RTNONE); rc = acedSSGet("X", NULL, NULL, rbl, ss);
if (rc != RTNORM) {
acutPrintf("\n空的或无效的选择集!");
return;
} rc = acedSSLength(ss, &lenSS);
if (rc != RTNORM) {
acutPrintf("\n空的或无效的选择集!");
return;
} // 输入比例因子
acedInitGet(RSG_NONULL + RSG_NONEG + RSG_NOZERO, NULL);
acedGetReal("\n比例因子: ", &sf); for (idx = 0; idx < lenSS; idx++)
{
// 取得选择集中索引位置的实体名
rc = acedSSName(ss, idx, ssEntName);
if (rc != RTNORM) {
break;
} // 取得实体数据
rbSSEnt = acdbEntGet(ssEntName);
if (!rbSSEnt) {
break;
} rbTrav = rbSSEnt; while (rbTrav) {
switch (rbTrav->restype)
{
case 41 :
case 42 :
rbTrav->resval.rreal = rbTrav->resval.rreal * sf;
break;
}
rbTrav = rbTrav->rbnext;
}//while rc = acdbEntMod(rbSSEnt);
if (rc != RTNORM) {
acutPrintf("\n编辑实体失败!");
} if (rbSSEnt) {
acutRelRb(rbSSEnt);
}
}//for acedSSFree(ss);
if (rbl) {
acutRelRb(rbl);
} return;
}
 楼主| 发表于 2004-7-16 11:10:00 | 显示全部楼层

解决了

解决了: 对Block Reference对象操作时, 用到AcGeScale3d, AcGeMatrix3d, AcGeVector3d等类及setScaleFactor()时,
要引用acge16.lib库,否则会出现"无法解析的符号..."错误! 所以如果出现"无法解析的符号..."的错误时,应该考虑是否是没有引用相应的lib库文件!

评分

参与人数 1威望 +1 金钱 +2 收起 理由
zfbj + 1 + 2 【好评】好思路

查看全部评分

发表于 2004-7-20 09:32:00 | 显示全部楼层
如何引用?
 楼主| 发表于 2004-7-20 14:25:00 | 显示全部楼层

回复

在工程的属性页中设置,


引用如图所示:





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 06:53 , Processed in 0.174712 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表