明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1622|回复: 3

[讨论]谁用过AcAxRotate函数?

[复制链接]
发表于 2004-11-21 10:10:00 | 显示全部楼层 |阅读模式
  1. // 在XOY平面上旋转实体
  2. Acad::ErrorStatus CModifyEnt::Rotate(AcDbObjectId entId,
  3.                    AcGePoint2d ptBase, double rotation)
  4. {
  5.   COleSafeArray sa;
  6.     DOUBLE dValues[] = {ptBase.x, ptBase.y, 0};
  7.     sa.CreateOneDim(VT_R8, 3, dValues);
  8.   
  9.     VARIANT *pVariant = (LPVARIANT)sa;
  10.    
  11.     if (SUCCEEDED(AcAxRotate(entId, *pVariant, rotation)))
  12.     {
  13.       return TRUE;
  14.     }
  15.     else
  16.     {
  17.       return FALSE;
  18.     }
  19.   
  20. }
写了上面的这个函数,但是编译时提示找不到AcColor的定义,不知道是不是我的开发包的问题,请大家帮忙给测试一下。王版主能够帮忙在2004下测试一下?
发表于 2004-11-21 11:37:00 | 显示全部楼层

回复

引用以下头文件,注意先后顺序: #include "acadi.h"
#include "axboiler.h" static void Rotate(AcDbObjectId entId,
AcGePoint2d ptBase, double rotation)
{
COleSafeArray sa;
DOUBLE dValues[] = {ptBase.x, ptBase.y, 0};
sa.CreateOneDim(VT_R8, 3, dValues);

VARIANT *pVariant = (LPVARIANT)sa;

if (SUCCEEDED(AcAxRotate(entId, *pVariant, rotation)))
{
}
else
{
}

} // ----- AcAxRotate_Test._rot command (do not rename)
static void AcAxRotate_Test_rot(void)
{
// Add your code for command AcAxRotate_Test._rot here
int rc; ads_name en;
ads_point pt; AcDbObjectId eId; rc = acedEntSel("\nSelect an entity: ", en, pt); if ( rc == RTNORM )
{
rc = acdbGetObjectId(eId, en); AcGePoint2d basePt(0,0);
Rotate(eId,basePt,45);
}
测试程序,命令: ROT

本帖子中包含更多资源

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

x
 楼主| 发表于 2004-11-21 17:58:00 | 显示全部楼层
顺便问一句,测试没有问题吧,呵呵。
发表于 2004-11-21 20:02:00 | 显示全部楼层

回复

能够正常运行,Rotate实体.

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

本版积分规则

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

GMT+8, 2024-11-26 10:29 , Processed in 0.238223 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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