找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 543|回复: 4

[求助]:VC与ARX的语句转化

[复制链接]
发表于 2002-10-30 20:59:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
VC与ARX的语句转化
VC]
  pDC->MoveTo(16,39);
pDC->LineTo(16, 98);
pDC->Line TO (34, 98);
在ARX如何表达。(LINETO 的情况较多)。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-10-30 22:11:30 | 显示全部楼层
简单办法
ads_command(RTSTR,"LINE",RTPOINT,pt1,RTPOINT,pt2,RTPOINT,pt3,RTSTR,"",NULL);
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-10-31 09:22:52 | 显示全部楼层
我学的时间不长,你的句子不太懂。
是不是理解为
ads_command(RTSTR,"LINE",RTPOINT,pt1,RTPOINT,pt2,RTPOINT,pt3,RTSTR,"",NULL);
PT1,PT2,PT3是起点横坐标,纵坐标,Z坐标值。后面的RTSTR 后继续跟另一点的三个坐标。在加NULL。
如果还要加线,就反复使用这个命令。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 192个

财富等级: 日进斗金

发表于 2002-10-31 09:46:36 | 显示全部楼层
基本是这样,但只是ads命令的方式
如果用arx可以直接创建pline
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-10-31 09:54:22 | 显示全部楼层

  1. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  2. //| 函数名:                        绘制PLine线
  3. //|                                        MakePlineEx()
  4. //|                                               
  5. //| 输入参数:                int n                                        项点的各数
  6. //|                                        char* lay                                所在层
  7. //|                                        ads_point pt[]                        各项点坐标
  8. //|                                        double wid                                线宽
  9. //|                                        int col                                        颜色
  10. //|                                        struct resbuf *xData        附加扩展数据
  11. //|                                        BOOL draw                                是否绘制
  12. //|
  13. //| 返回:                        AcDbObjectId
  14. //| 说明:                        指定层名,建立PLine线
  15. //| 举例:                        略
  16. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  17. AcDbObjectId MakePlineEx(int n,char* lay,ads_point pt[],double wid,
  18.                                            int col,struct resbuf *xData,BOOL draw)
  19. {
  20.         int i;
  21.         AcDbObjectId PlineId;
  22.         AcGePoint3dArray ptArr;//定义三维坐标数组
  23.         ptArr.setLogicalLength(n);

  24.         for (i = 0;i < n ;i++)
  25.                 ptArr[i].set(pt[i][0],pt[i][1],0.0);        //转换坐标数组

  26.         if (draw) {

  27.                 AcDb2dPolyline *pLine = new AcDb2dPolyline(AcDb::k2dSimplePoly,
  28.                         ptArr,0.0,Adesk::kTrue,wid,wid);

  29.                 AcDbBlockTable *pBlockTable;

  30.                 if (acdbHostApplicationServices()->workingDatabase()->
  31.                         getBlockTable(pBlockTable,AcDb::kForRead) != Acad::eOk) {
  32.                         pLine->close();
  33.                         return 0;
  34.                 }


  35.                 AcDbBlockTableRecord *pBlockTableRecord;

  36.                 if (pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,
  37.                         AcDb::kForWrite) != Acad::eOk) {
  38.                         pBlockTable->close();
  39.                         pLine->close();
  40.                         return 0;
  41.                 }


  42.                 if (pBlockTable->close() != Acad::eOk) {
  43.                         pBlockTableRecord->close();
  44.                         pLine->close();
  45.                         return 0;
  46.                 }


  47.                 pLine->setColorIndex(col);

  48.                 if (pLine->makeOpen() != Acad::eOk) {
  49.                         pBlockTableRecord->close();
  50.                         pLine->close();
  51.                         return 0;
  52.                 }
  53.                        
  54.                 pLine->setLayer(lay);

  55.         //将对象添加到数据库中

  56.                 if (pBlockTableRecord->appendAcDbEntity(PlineId,pLine) != Acad::eOk) {
  57.                         pBlockTableRecord->close();
  58.                         pLine->close();
  59.                         return 0;
  60.                 }

  61.                                        
  62.                 if (pBlockTableRecord->close() != Acad::eOk) {
  63.                         pLine->close();
  64.                         return 0;
  65.                 }


  66.                 //===========加扩展数据===========
  67.                 pLine->upgradeOpen();
  68.                 if (pLine->setXData(xData) != Acad::eOk){

  69.                         ads_printf("\n警告: 实体(多义线 ID=%d)添加扩展数据时出错!\n",PlineId);

  70.                         pLine->close();
  71.                         return PlineId;
  72.                 }
  73.                 //================================

  74.                 pLine->close();
  75.         }
  76.         else {
  77.                 for (i = 0;i < n;i++) {
  78.                         if (i < n - 1)
  79.                                 acedGrDraw(pt[i],pt[i + 1],col,0);
  80.                 }
  81.         }
  82.         return PlineId;
  83. }
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 08:46 , Processed in 0.318892 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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