c# - 如何在 Objectarx C# 中将椭圆转换为折线
问题描述
目前我有一个创建椭圆的脚本,我试图添加调整线条粗细的能力。由于据我所知,您不能正常使用椭圆来执行此操作,因此我尝试使用 PELLIPSE 变量将其转换为折线。但是,即使使用变量设置,它似乎也没有转换过来。有没有更简单的方法可以解决这个问题,或者有可能解决这个问题?
当前椭圆代码:
public override Entity getAcObj()
{
return
new Ellipse(
new Point3d(Markup.XCoord, Markup.YCoord, 0),
Vector3d.ZAxis,
new Vector3d((Markup.Locations[0].XCoord - Markup.Locations[1].XCoord) / 2, -(Markup.Locations[2].YCoord - Markup.Locations[3].YCoord) / 2, 0),
(Math.Abs(Markup.Locations[0].YCoord - Markup.Locations[3].YCoord) / 2)
/ (Math.Abs(Markup.Locations[0].XCoord - Markup.Locations[1].XCoord) / 2),
0,
360 * Math.Atan(1.0) / 45.0
)
{
Layer = Layer
};
}
PELLIPSE 变量设置:
Application.SetSystemVariable("PELLIPSE", 1);
解决方案
PELLIPSE 系统变量仅作用于本机 ELLIPSE 命令。您可以将它与 Editor.Command() 方法结合使用,但仅适用于闭合椭圆。或者,您可以使用为 Ellipse 类型提供 ToPolyline() 扩展方法的GeometryExtensions 库。
var polyline = ellipse.ToPolyline();
推荐阅读
- ansible - 使用 Ansible 处理分页
- python-3.x - 比较链表的两个节点的值时如何在 Python 中修复 TypeError
- amazon-web-services - 端口映射不适用于 mac 上的 docker
- scala - 如何在 sbt 中将主类从子模块设置为根
- json - 在 swaggerUI 中使 requestBody 字段可选
- gcloud - 无法使用非 google 帐户登录 gcloud SDK
- python - 为什么我的数独求解程序无法正常工作?
- c++ - 将二进制文件读入无符号字符向量缓冲区
- python - 如何使用 python3 -i 加载脚本,但没有名称 == 主运行?
- regex - 在使用 BASH 的正则表达式定义的模式之前插入一个字符