乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 217|回复: 13

显示中心点

[复制链接]

7

主题

23

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2009-12-16 09:50:38 | 显示全部楼层 |阅读模式

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2009-12-16 15:24:02 | 显示全部楼层
您需要将该点分解成它的三维部分,例如,acutPrintf("centre %f,%f,%f ",ptCentre。x,ptCentre。y,ptCentre。z);
或者类似的东西
回复

使用道具 举报

7

主题

23

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2009-12-16 22:41:08 | 显示全部楼层

你好。。。
感谢您的回复。
问题在
  1. if (objid != NULL)

如何从数据库获取AcDbObjectId?
请告诉我...
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2009-12-16 23:42:34 | 显示全部楼层
试试这样的东西-
  1. void CSampDialog::OnShowPoints()
  2. {
  3.         AcDbObjectId objid; // this gets assigned to in the acdbOpenObject method.
  4.         AcDbObject* pObj;
  5.         AcDbEntity* pObj = NULL;  // ----- you need to get/select an object to set this so you can open it
  6.         if(acdbOpenObject(pObj,objid,AcDb::kForRead) == Acad::eOk)
  7.         {
  8.                 AcDbCircle* pCirc = AcDbCircle::cast(pObj);
  9.                 if (pCirc !=NULL)
  10.                 {
  11.                         double dRadius = pCirc->radius();
  12.                         AcGePoint3d ptCenter = pCirc->center();
  13.                         acutPrintf("center %f radius %f", ptCenter, dRadius);
  14.                 }
  15.                 pObj->close();
  16.         }
  17.         else
  18.                 acutPrintf("\nFailed to open the object.");
  19.         }
  20. }

回复

使用道具 举报

7

主题

23

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2009-12-17 00:18:07 | 显示全部楼层
嗨,米克,
感谢您的回复
我用了你的代码。但它显示未能笔对象。
我在这里的事情,我必须从数据库中的对象中获取选定的对象的objectId。
但我不知道如何从数据库获取objectid。
请帮帮我。
再次感谢...
回复

使用道具 举报

7

主题

23

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2009-12-17 00:34:53 | 显示全部楼层
您针对的是哪个版本的 Acad?
回复

使用道具 举报

7

主题

23

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2009-12-17 00:37:17 | 显示全部楼层
您可以使用 acdbGetCurrentSelectionSet
获取当前选择集中的 ID 数组
回复

使用道具 举报

7

主题

23

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2009-12-17 00:59:16 | 显示全部楼层
嗨,丹尼尔,
感谢您的回复。
我是arx的新手。请给出 acdbGetCurrentSelectionSet 的代码语法。
我正在使用Autocad 2000和vc6.0
非常感谢....
回复

使用道具 举报

7

主题

23

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2009-12-17 01:17:58 | 显示全部楼层
类似
  1. void CSampDialog::OnShowPoints()
  2. {
  3.   AcDbObjectIdArray ids;
  4.   if(acdbGetCurrentSelectionSet(ids) == eOk)
  5.   {
  6.     for(size_t i = 0; i radius();
  7.           AcGePoint3d ptCenter = pCirc->center();
  8.           acutPrintf("center (%g,%g,%g) radius %g",
  9.             ptCenter.x,ptCenter.y,ptCenter.z, dRadius);
  10.         }
  11.         pObj->close();
  12.       }
  13.       else
  14.         acutPrintf("\nFailed to open the object.");
  15.     }
  16.   }
  17. }

回复

使用道具 举报

7

主题

23

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2009-12-17 01:30:39 | 显示全部楼层
嗨,丹尼尔,
我用了你的代码。但是,
  1. error C2065: 'acdbGetCurrentSelectionSet' : undeclared identifier
  2. error C2065: 'eOk' : undeclared identifier
  3. warning C4018: '<' : signed/unsigned mismatch

我是否应该包含任何头文件???
再次感谢...
问候,
保罗.G
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 21:57 , Processed in 0.202691 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表