明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1844|回复: 4

[求助]ARX 如何画两根或多根直线

[复制链接]
发表于 2010-8-25 17:07:00 | 显示全部楼层 |阅读模式
我是ARX初学者,画一根直线我现在是可以画了,

可是如果画两根呢? 具体怎么操作?

望指点 谢谢
发表于 2010-8-26 08:36:00 | 显示全部楼层

一条都会了,多条又有何困难的呢?

代码都是一样的啊,修改一个第一条直线的端点坐标不就可以了嘛。

 楼主| 发表于 2010-8-26 09:00:00 | 显示全部楼层
我用向导生成的。再在里面加上如下代码创建一直线,代码是教材里面的
改的话,改了 ptStart  ptEnd坐标就可以了?  那我创建两条的话,是不是要创建总共四个点?

那些指针也得新增一些?
具体有一个代码就好了,我看一下可能就会明白 了




// 在内存上创建一个新的对象 
  AcGePoint3d ptStart(0, 0, 0); 
  AcGePoint3d ptEnd(100, 100, 0); 
  AcDbLine *pLine = new AcDbLine(ptStart, ptEnd); 
  
 // 获得指向块表的指针 
 AcDbBlockTable *pBlockTable; 
 acdbHostApplicationServices()->workingDatabase() 
  ->getBlockTable(pBlockTable, AcDb::kForRead); 
 
 // 获得指向特定的块表记录(模型空间)的指针 
 AcDbBlockTableRecord *pBlockTableRecord; 
    pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, 
        AcDb::kForWrite);     
  
 // 将AcDbLine类的对象添加到块表记录中 
 AcDbObjectId lineId; 
    pBlockTableRecord->appendAcDbEntity(lineId, pLine); 
  
 // 关闭图形数据库的各种对象 
 pBlockTable->close(); 
    pBlockTableRecord->close(); 
    pLine->close();  
发表于 2010-8-30 15:51:00 | 显示全部楼层
// 在内存上创建一个新的对象 
  AcGePoint3d ptStart(0, 0, 0); 
  AcGePoint3d ptEnd(100, 100, 0); 
  AcDbLine *pLine = new AcDbLine(ptStart, ptEnd); 
  //再加一条
  AcGePoint3d ptStart1(0, 0, 0); 
  AcGePoint3d ptEnd1(0, 100, 0); 
  AcDbLine *pLine1 = new AcDbLine(ptStart1, ptEnd1); 
 // 获得指向块表的指针 
 AcDbBlockTable *pBlockTable; 
 acdbHostApplicationServices()->workingDatabase() 
  ->getBlockTable(pBlockTable, AcDb::kForRead); 
 
 // 获得指向特定的块表记录(模型空间)的指针 
 AcDbBlockTableRecord *pBlockTableRecord; 
    pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, 
        AcDb::kForWrite);     
  
 // 将AcDbLine类的对象添加到块表记录中 
 AcDbObjectId lineId; 
    pBlockTableRecord->appendAcDbEntity(lineId, pLine); 
  // 将第二条线也加进模型空间中
pBlockTableRecord->appendAcDbEntity(lineId, pLine1); 
//虽然这么写不太严谨,但后面你对lineId也没做什么操作所以就这么给你添加上了,希望你能了解就好
 
 // 关闭图形数据库的各种对象 
 pBlockTable->close(); 
    pBlockTableRecord->close(); 
    pLine->close();  
//千万别忘了关闭实体,否则日后头疼的问题会出现很多
    pLine1->close();
 楼主| 发表于 2010-8-31 12:43:00 | 显示全部楼层
好人! 谢谢 现在完全理解了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 12:37 , Processed in 0.170955 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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