cad.net 替换Polyline2d的点
cad.net 替换Polyline2d的点
Polyline2d的点更改,它和其他的图元处理起来不一样,因为它是一个复杂实体.
需要通过枚举值来处理.
提取点集
先看一个通用的提取点集的做法,
GetStretchPoints可以作用在:轻多段线/二维多段线/三维多段线
你只需要将Polyline2d改成其他即可.
之所以改成ListPoint3d是因为用上Linq,微软大法好啊!
/// summary
/// 二维多段线点集
/// /summary
public static ListPoint3d GetPoint3ds(this Polyline2d pl)
{
var pts3d = new Point3dCollection();
pl.GetStretchPoints(pts3d);
var lst = new ListPoint3d();
foreach (Point3d item in pts3d)
{
lst.Add(item);
}
return lst;
}
将二维多段线的点集逆序
IsClockwise 判断是否顺时针,可参考叉乘判断
//打开图元
var ent = tr.GetObject(item, OpenMode.ForWrite) as Entity;
if (ent is Polyline2d pl2d)
{
var pts3d = pl2d.GetPoint3ds();
if (!IsClockwise(pts3d))//判断是否顺时针
{
continue;
}
int j = 0;
var pl2dEnu = pl2d.GetEnumerator();
while (pl2dEnu.MoveNext())
{
if (j 0)
{
var id = (ObjectId)pl2dEnu.Current;
var vtx = tr.GetObject(id, OpenMode.ForWrite) as Vertex2d;
vtx.Position = pts3d[pts3d.Count - j];
}
j++;
}
}
(完)
cad.net 替换Polyline2d的点 相关文章
- AutoCAD.Net/C#.Net QQ群:193522571 C# 命令重写,重定义,Override,Overrule
解决方案: public class ObjectRule : ObjectOverrule { public override void Erase(DBObject dbObject, bool erasing) { base.Erase(dbObject, erasing); //定义数据库Database db = HostApplicationServices.WorkingDatabase;//获取当前文件Document doc
- 【js知识】splice()实现数组的添加、删除、替换
目录 一、删除数组 二、添加数组 三、替换数组元素 splice 方法一个数组中最强大的方法,不仅可以对数组进行元素对添加,对数组元素对删除,对数组元素的替换,可以说它集百家与一身,它会直接修改原数组,返回删除的元素。 那么我们就来好好的看看它是如何进
- cad.net c#仿lisp的mapcar函数
c#仿lisp的mapcar函数 /// summary/// 仿lisp的mapcar函数/// /summary/// typeparam name="T1"集合/typeparam/// typeparam name="T2"集合/typeparam/// typeparam name="TR"/typeparam/// param name="lst1"/param/// param name="lst2"/param/// param na
- springboot无法完成变量从pom到.properties文件自动替换的问题
原贴地址:http://www.cnblogs.com/softidea/p/5644755.html 我在maven的pom文件中进行了多环境变量配置,引用了maven-resources-plugin,在application.properties文件中通过以下配置指定不同环境下的配置文件, spring.profiles.active = ${profiles.activ
- CSS 实现logo图像链接替换文本链接
div id="logo"a href="http://neirong.org" title="资源共享"img src="images/logo.gif"/a/div 现在的网页设计一般用logo图片代码纯文本链接,而大部分网页设计师是直接在网页相关位置使用(lt;img src=”images/logo.gif”gt;)实现的,其实更好的方法是直接
- 力扣1736. 替换隐藏数字得到的最晚时间-C语言实现-简单题
题目 传送门 给你一个字符串 time ,格式为 hh:mm(小时:分钟),其中某几位数字被隐藏(用 表示)。 有效的时间为 00:00 到 23:59 之间的所有时间,包括 00:00 和 23:59 。 替换 time 中隐藏的数字,返回你可以得到的最晚有效时间。 示例 1: 输入:time =
- ast babeljs --2( 数组替换)
https://www.cnblogs.com/gaoyongjian/p/13246736.html // 将js代码转换成ASTconst { parse } = require("@babel/parser");// 用来遍历AST中的节点const traverse = require("@babel/traverse").default;// AST转换成jsconst generator = require("@babel/ge
- ubuntu 安装指南
替换默认的 http://archive.ubuntu.com/ 为 mirrors.aliyun.com 2.开启root sudo passwd root 设置密码 vim /etc/ssh/sshd_config # $OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $# This is the sshd server system-wide configuration file
- sed替换配置文件
sed -r -e "s#(.*ip: ).*#199.199.10.102#g" application.ymlsed -r -e "s#(.*ip: ).*#\1199.199.10.102#g" application.ymlsed -r -e "s#(ip: ).*#\1199.199.10.102#g" application.ymlsed -r -e "s#(ip: ).*#\1199.199.10.102#g" -e "s#(url: jdbc:mysql:/
- SQL REPLACE 函数 -替换字符串
SQL REPLACE 函数 -替换字符串 REPLACE 函数 -用第3个表达式替换,第1个字符串表达式中,出现的所有第2个给定字符串的表达式。 语法: REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' ) 参数 'string_expression1' //待搜索