乐筑天下

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

关于arx中的尺寸

[复制链接]

6

主题

16

帖子

1

银币

初来乍到

Rank: 1

铜币
40
发表于 2009-12-23 04:09:37 | 显示全部楼层 |阅读模式
亲爱的成员们,
任何人都知道如何在arx中创建维度
在autolisp中,我将使用_。dimaligned
  1. (setq  pt1 (list 5 5))
  2. (setq  pt2 (list 10 10))
  3. (command "line" pt1 pt2        "")
  4. (command "_.dimaligned" pt1 pt2         (polar pt2 0  1))

带有代码的简单示例会很好workingDatabase();
    AcDbBlockTableRecordPointer pBlockTableRecord(pDatabase->currentSpaceId(),AcDb::kForWrite);
    AcDbAlignedDimension *dim = new AcDbAlignedDimension (pr1.Point,pr2.Point,pr3.Point);
    dim->setDatabaseDefaults(pDatabase);
    pBlockTableRecord->appendAcDbEntity(dim);
    dim->close();
  }
[/code]
回复

使用道具 举报

6

主题

16

帖子

1

银币

初来乍到

Rank: 1

铜币
40
发表于 2010-1-1 20:28:20 | 显示全部楼层
你好Daniel,
我使用了你之前的代码,只是修改了一些以使用我的数据库。
以下代码在autocad中抛出错误对话框。
是否有我丢失的东西?如果我使用workingDatabase,它不会报告此错误。
关于,
Pawan
  1. int test_save()
  2. {
  3.         AcDbDatabase *pDb = new AcDbDatabase();
  4.         AcDbBlockTable *pBtbl;
  5.         pDb->getSymbolTable(pBtbl, AcDb::kForRead);
  6.         AcDbBlockTableRecord *pBtblRcd;
  7.         pBtbl->getAt(ACDB_MODEL_SPACE, pBtblRcd, AcDb::kForWrite);
  8.         pBtbl->close();
  9.         ////////////////dim starts
  10.         ads_point pt1 = {5,10};
  11.         ads_point pt2 = {15,10};
  12.         ads_point pt3 = {10,10};
  13.         ads_point temp = {10,10};
  14.         ads_real tAngle = 0;
  15.         AcGePoint3d stpt(asPnt3d(pt1)); //3d starting point
  16.         AcGePoint3d endpt(asPnt3d(pt2));; //3d ending point
  17.         acutPolar(pt3, tAngle, 0, temp);
  18.         AcGePoint3d dimPoint(asPnt3d(temp)); //3d dim point
  19. //    if i use working database, this doesn't give error
  20. //    AcDbDatabase *pDb= acdbHostApplicationServices()->workingDatabase();
  21. //    AcDbBlockTableRecordPointer pBtblRcd(pDb->currentSpaceId(),AcDb::kForWrite);
  22.    
  23.         AcDbAlignedDimension *dim = new AcDbAlignedDimension (stpt,endpt,dimPoint);
  24.         dim->setDatabaseDefaults(pDb);
  25.         pBtblRcd->appendAcDbEntity(dim);
  26.         dim->close();
  27.         ////////////////dim ends
  28.        
  29.         //close the blocktable record
  30.         pBtblRcd->close();
  31.         //save the file
  32.         Acad::ErrorStatus es = pDb->saveAs(_T("c:\\temp\\test.dwg"));
  33.         //delete the database
  34.         delete pDb;
  35.         return 0;
  36. }

回复

使用道具 举报

6

主题

16

帖子

1

银币

初来乍到

Rank: 1

铜币
40
发表于 2010-1-1 21:49:38 | 显示全部楼层

永远不要假设返回Acad::ErrorStatus的函数将返回Acad::eOk,检查它们。很肯定你会发现你描述的问题。
回复

使用道具 举报

27

主题

193

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
300
发表于 2010-4-3 11:09:15 | 显示全部楼层
我发现了问题。
AcDbAlignedDimension*dim=new AcDbAlignedDimension(stpt, endpt, dimPoint);
与新数据库一起使用时,AcDbAlignedDimension()需要dimstyle。
这就是它之前报告错误的原因。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-5 22:12 , Processed in 0.194895 second(s), 60 queries .

© 2020-2025 乐筑天下

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