欢迎光临
我们一直在努力

【CAD NetAPI】 GetOffsetCurves

函数签名

public DBObjectCollection GetOffsetCurves(double offsetDist)

创建偏移副本,可实现偏移,或等距离外扩或收缩。

圆

红圆是原图,黄色圆圈是偏移10和20,绿色圆是偏移-10。这些圆的圆心相同,半径依次相差10。 正偏移,向圆外,即半径变大;负方向半径变小。

在这里插入图片描述

圆弧

在这里插入图片描述 弧和圆类似。

水平直线(起点在左)

红色线段是原始线段,起点在左,终点在右。黄色线段是偏移10和20,绿色线段是偏移-10。 正偏移,向线段上偏移;负偏移,线段下。 射线X起点和线段起点相同,方向也相同。逆时针旋转X180度,扫到的点在线段上;扫不到的,在线段下。 在这里插入图片描述

水平直线(起点在右)

红色线段是原始线段,起点在右,终点在左。黄色线段是偏移10和20,绿色线段是偏移-10。 正偏移,向线段上偏移;负偏移,线段下。 在这里插入图片描述

多义线矩形(节点顺时针)

和线段的方向相反。 正偏向,向内;负偏移,向外。和圆相反。 在这里插入图片描述

多义线(节点逆时针)

和线段的方向相反。 正偏向,向外;负偏移,向内。和圆相同。 在这里插入图片描述

包括圆弧的逆时针多义线段

方向和只包括直线的逆时针多义线完全相同。 在这里插入图片描述 在这里插入图片描述

比较少见的多义线

在这里插入图片描述 在这里插入图片描述

测试用代码

[CommandMethod("Test")]
public void Test()
{
CSelAEntity selDst = new CSelAEntity("请选择圆弧。");
selDst.AddCurve();
var prDst = selDst.Sel();
if (prDst.Status != PromptStatus.OK)
{
return ;
}
var db = CadBase.GetDefaultDatabase();
int x = 0, y = 10,x2=0,y2=0;
DBObjectCollection obs;
using (var tr = db.TransactionManager.StartTransaction())
{
Curve curve = tr.GetObject(prDst.ObjectId, OpenMode.ForWrite) as Curve;
obs = curve.GetOffsetCurves(y);
tr.Commit();
}
foreach (Entity e in obs)
{
e.ColorIndex = 2;
CEntHelp.AddEnity(e);
}
}

扩展阅读

我想对大家说的话
亲士CAD工具箱:支持AutoCad2013及以上
工作中遇到的问题,可以按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。
学习算法:按章节学习《喜缺全书算法册》,大量的题目和测试用例,打包下载。重视操作
活到老,学到老。明朝中后期,大约50%的进士能当上堂官(副部及更高);能当上堂官的举人只有十余人。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。

视频课程

先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。 https://edu.csdn.net/course/detail/38771 如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程 https://edu.csdn.net/lecturer/6176

测试环境

操作系统:win7 开发环境: VS2019 C++17 或者 操作系统:win10 开发环境: VS2022 C++17 如无特殊说明,本算法用**C++**实现。

赞(0)
未经允许不得转载:171主机测评 » 【CAD NetAPI】 GetOffsetCurves
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址