基于Visual C#的AutoCAD开发——实例4 多段线对象

autocad.net 画多段线_auto CAD 二次开发 c#.net 之JIG画多段线(polyline) 在CAD 命令中画多段线的命令为:pline。下面将介绍一种JIG画多段线的方法。首先,来介绍一下JIG这个东西。EntityJig(实体动态预览),按照指定步骤模仿特定类型的单个实体对象。首先,定义一个类,该类继承于:Autodesk.AutoCAD.EditorInput.EntityJig。继承该类后,需要重写两个方法。protected override SamplerStatus S... 阅读详情

实例4 多段线对象

 

1、获取多段线节点坐标

获取多段线节点坐标主要是通过AcadLWPolyline对象的Coordinates属性获取。添加一个按钮,设置其Name和Text属性都为“获取多段线节点坐标”,同时添加一个RichTextBox控件,设置其name为“ResultInfo”。为“获取多段线节点坐标”按钮的Click事件添加如下代码:

        private void 获取多段线节点坐标_Click(object sender, EventArgs e)

        {

        handle01:

            Microsoft.VisualBasic.Interaction.AppActivate(AcadApp.Caption);

            object returnObj, pickPoint;

            string pickPrompt = "选取多段线!";

            AcadDoc.Utility.GetEntity(out returnObj, out pickPoint, pickPrompt);

            AcadObject returnCADObj = (AcadObject)returnObj;

            if (returnCADObj.ObjectName == "AcDbPolyline")

            {

                AcadLWPolyline returnPolyLine = (AcadLWPolyline)returnCADObj;

                double[] polyLinePoint;

                polyLinePoint = (Double[])returnPolyLine.Coordinates;

                int i, pointCount = polyLinePoint.Length / 2;

                string showInfo="";

                for (i = 0; i < polyLinePoint.Length-1; i = i + 2)

                {

                    showInfo += polyLinePoint[i].ToString() + "," + polyLinePoint[i+1].ToString() + "/n";

                }

                showInfo += "标高为:" + returnPolyLine.Elevation.ToString();

                ResultInfo.Text = showInfo;

            }

            else

            {

                MessageBox.Show("选择的不是多段线!请重新选择!");

                goto handle01;

            }

            Microsoft.VisualBasic.Interaction.AppActivate(this.Text);        

        }

其中,polyLinePoin为获取到的坐标点数组,polyLinePoint.Length表示数组的长度。由于Polyline中所有节点都在一个平面上,AcadLWPolyline的Coordinates属性中只是包含节点的两个坐标(X坐标和Y坐标),Z坐标通过Elevation属性来获得,所以节点个数pointCount = polyLinePoint.Length/2。

运行程序,其显示结果如下图所示:

2、其他常用属性和方法

和直线对象一样,若需要删除该直线对象,通过对象的Delete()方法即可完成。其常用的属性和方法如下表所示:

属性

说明

方法

说明

Area

多段线所包围范围的面积

Delete()

删除多段线

Closed

是否闭合

Explode()

分解多段线

ConstantWidth

全局宽度

get_Coordinate(Index)

获取多段线中指定点的坐标

Coordinates

节点坐标

GetBoundingBox(MinPoint,MaxPoint)

获取多段线包围盒的最大坐标和最小坐标位置

Document

所在的CAD文档

Highlight(bool)

是否高亮显示

Layer

所在图层

IntersectWith(IntersectObject,option)

与其他图形对象相交操作

Length

长度

Move(FromPoint,ToPoint)

移动多段线

Normal

多段线所在面的法线

set_Coordinate(Index,pVal)

设置指定节点的坐标

Visible

是否可见

Rotate(BasePoint,RotationAngle)

根据基点击角度旋转多段线

 

CAD二次开发&C#——动态绘制矩形(DrawJig) 文章目录前言一、即时绘制EntityJig和DrawJig?二、操作步骤1.添加引用2.自定义RectJig类,继承自DrawJig3.调用函数三、结果演示总结 前言 CAD二次开发的项目中需要用户选取一个矩形范围然后在这个范围内进行计算,最初是一个点一个点的拾取然后连起来绘制成四边形的。考虑到用户体验,应该完善成用户直接能拉一个矩形框出来。所以这个任务需求就是像CAD界面操作的绘制矩形一样,然后获取四个角点坐标。 (写到这里我突然想到CAD有矩形绘制啊,我做个插件为什么要写一个已有的功能呢。。。。。。 阅读详情

相关推荐

第一个在vs2010中开发的autoCAD程序

第一个在vs2010中开发的autoCAD程序

a4goku的专栏 2228

AutoCAD .Net二次开发之JIG动态绘制详解

AutoCAD .Net二次开发之JIG动态绘制详解 AutoCAD平台动态绘制分两种,单实体绘制EntityJig和多实体绘制DrawJig,需要自己自定义类去继承。 EntityJig class MyLineJig : EntityJig//使用此基类来实现动态绘制只可以绘制一个实体 { //基类EntityJig中有一个关键的成员变量Entity,也就是要绘制到模型...

weixin_41906069的博客 6213

CAD二次开发--手动逐点绘制多段线示例及代码

先来看想要实现的效果: 想实现这个效果,有两步是比较关键的,第一步就是允许PromptPointOptions使用基准点,第二部就是循环更新PromptPointOptions的基准点。这部分详细代码有三个方法,我分别展示在下面(直接复制粘贴就可以测试): AddPoly方法: [CommandMethod("AddPoly")] public void AddPoly() { Document doc = Application.Doc

韦_恩的博客 1479

auto CAD 二次开发 c#.net 之JIG画多段线(polyline)

在CAD 命令中画多段线的命令为:pline。下面将介绍一种JIG画多段线的方法。 首先,来介绍一下JIG这个东西。 EntityJig(实体动态预览),按照指定步骤模仿特定类型的单个实体对象。首先,定义一个类,该类继承于: Autodesk.AutoCAD.EditorInput.EntityJig。继承该类后,需要重写两个方法。 protected override SamplerStat

SieSteven 1万+

AutoCAD .NET API二次开发入门:从环境搭建到图形自动化实战

CAD二次开发是工程软件自动化的重要技术方向,其核心在于通过编程接口实现对设计软件的深度控制。AutoCAD .NET API作为当前主流的开发框架,基于.NET平台,提供了类型安全、高性能的图形数据库操作能力。其技术价值在于能够将重复性绘图任务自动化,显著提升机械、建筑等领域的图纸处理效率。在应用场景上,它广泛适用于批量修改图层属性、从DWG文件提取数据生成报表,以及根据业务逻辑自动生成标准化图纸等需求。本文以C#为例,详细介绍了开发环境搭建、事务处理模型等关键概念,并通过实战案例演示了如何利用.NET

weixin_34195364的博客 410

AutoCAD .NET API二次开发实战:C#插件开发与图形自动化处理

图形自动化处理是工程设计领域提升效率的关键技术,其核心原理是通过编程接口实现对CAD软件内部对象模型的精准控制。在AutoCAD生态中,.NET API提供了对图形数据库、实体、图层等底层对象的完全访问能力,技术价值在于能够将繁琐的手动操作转化为可重复执行的自动化流程。通过C#等语言进行二次开发,可以创建功能强大的插件,应用于参数化绘图、批量属性提取、智能批处理等典型场景。本文聚焦于AutoCAD .NET API的实战应用,详细解析了从环境搭建、命令注册到高级图形处理的全过程,并深入探讨了事务管理、选择集

weixin_34372728的博客 290

《基于Visual C#的AutoCAD开发及其在工程中的应用》目录

   基于Visual C#的AutoCAD开发及其在工程中的应用基于Visual C#的AutoCAD开发及其在工程中的应用             内容提要 本书以实例形式介绍采用Visual C#语言对AutoCAD进行二次开发的技术。全书包括基础篇和应用篇两部分,其中基础篇主要介绍AutoCAD开发中常见的图形对象获取、图形绘制、图形编辑等实例,应用篇主要结合实

肖泽云 4024

C#仿CAD绘制多段线

C#仿CAD绘制多段线 可自由灵活修改绘制需求和定制样式

AutoCAD二次开发基础

(1)在作为接口的类Class1中,添加如下命令");return;");(2)若MessageBox报错标红,则将鼠标光标移动到报错处,点击显示可能的修补程序然后选择此时错误消失,上方出现代码至此,已经自定义了一个简单的CAD命令。说明:字符串"HelloWorld"可替换为其它自定义命令,下面的函数名HelloWorld()也可按照喜好进行设置。(1)在生成菜单中找到生成解决方案,点击确定(2)在输出界面查看输出信息,可以看到生成了一个。

hantanheihuo的博客 8071

VS2017中调用gdal(C#版)的方法二(含gdal下载地址,配置过程,代码测试,超详细!!)

VS2017中gdal(C#)版的配置与测试 上次记录了直接在VS2017中下载并应用gdal的方法,这次来记录一下网上下载的安装包配置与测试的方法。 一、环境、版本及下载地址 win10,vs2017社区版,gdal2.4.4 还是像之前在Unity中应用gdal一样,最好是下载已经编译好的C#版的gdal,不然自己配置真的很容易出错,我就是这样的,下面提供不同版本的gdal下载地址: 1.GDAL2.4.4(C#版、64位): https://download.csdn.net/download/che

chengbaola的博客 1365

MAX30102心率血氧传感器

估算AC、DC值的方法如下:找两个波谷点,两个波谷点之间有一个波峰点,两个波谷点相连成一条直线,与Y轴平行的线穿过波峰点会与两个波谷点连接成的直线相交于一点,这个点就是DC点,DC点的Y轴对应值就是直流分量,AC分量的值为波峰点到DC点之间的差值。在医院测量中常用的一种血氧采集方式,如下图所示,光电传感器和光源分别置于手指的两侧,光源穿过手指被另一侧的光电二极管接收,根据光衰减量计算血氧浓度。那么,根据上面的Beer-Lambert 定理,针对测量的具体场景,测量过程的衰减为三层穿透物质衰减量的叠加。

qq_41861711的博客 1万+

基于C#(Visual Studio 2013)的AutoCAD2016二次开发(三)CAD中一般类的了解

学习CAD二次开发的基础是了解CAD中提供的可供编辑的方法,初学者和大师的一个区别是对于CAD中类库的掌握,了解其所提供的方法是学习二次开发不可避免的阶段,如下是我整理学习的一些CAD提供的方法: (1)Line直线 public Line(); protected internal Line(IntPtr unmanagedObjPtr, bool autoDelete); public Line(Point3d pointer1, Point3d pointer...

qq_45518972的博客 1035

浅谈一下小波变换和EEG信号处理

浅谈小波变换,总结不是很到位,请大家指正。

qq_45045249的博客 2864

基于Visual C#的AutoCAD开发——实例11 绘制基本图形

实例11 绘制基本图形 除了可以获取CAD文件中的图形对象外,还可以通过程序在CAD中绘制图形,特别是对于一些重复、繁琐的操作使用程序设计可以很大程度上提高工作效率。在CAD中绘制图形主要通过AcadModelSpace接口来实现,通过该接口程序设计者可以通过程序语言在CAD中绘制线条、面、三维实体等。下面介绍一些常用绘图函数:1、绘制直线绘制直线主要通过ModelSpace的Ad

肖泽云 6026

中微8S6990实战:5分钟搞定GPIO配置与按键中断(附避坑指南)

本文以中微8S6990单片机为例,详细讲解了GPIO按键中断的快速配置方法与实战避坑指南。内容涵盖GPIO初始化、中断配置、软件消抖优化及低功耗唤醒等关键步骤,并提供了利用逻辑分析仪进行调试验证的有效方法,帮助开发者快速构建稳定可靠的嵌入式按键交互系统。

weixin_29194817的博客 281

手把手教你解决CentOS sshd启动报错:从权限问题到目录缺失的全套解决方案

本文提供了一套完整的CentOS SSH服务启动故障排查与修复方案。针对sshd启动报错,从systemd日志分析、sshd -t配置测试入手,详细解决了私钥文件权限过宽(如0644错误)和权限分离目录缺失等典型问题,并附带了扩展排查清单,帮助运维人员系统性地定位和解决连接故障。

weixin_29248611的博客 152

lisp 多段线转面域_晓东CAD家园-论坛-晓东工具箱、编程申请-[编程申请]:批量面域转成闭合多段线!!!!-批量面域转成闭合多段线!!!! - Powered by Discuz!...

'将多个直线连成一条轻质多段线Public Sub joinpoly(reg As AcadRegion)reg.ExplodeOn Error Resume NextDim sset As AcadSelectionSetIf Not IsNull(ThisDrawing.SelectionSets.Item("joinpoly")) ThenSet sset = ThisDrawing.Sel...

weixin_39759989的博客 908

20、七鳃鳗繁殖与早期生活史:从水质到养殖的全面解析

本文全面解析了七鳃鳗的繁殖与早期生活史,重点探讨了水质对幼体生存的影响、养殖密度与生长关系、变态过程的时间与大小特征,以及人工繁殖在濒危物种恢复和入侵物种控制中的应用。同时,文章分析了大规模养殖面临的挖掘基质需求、空间限制、清洁管理、疾病防控及微生物环境等挑战,并强调实验室养殖对科学研究和种群管理的重要意义。随着技术进步,未来有望扩展更多物种的繁殖研究,揭示七鳃鳗生物学的进化奥秘,实现资源的可持续利用。

l6m7n8的博客 116

基于Visual C#的AutoCAD 开发 及其在工程中的应用

目 录 基础篇 1 实例1 基本例子 1 1、新建项目 1 2、添加引用 1 3、全局变量定义 1 4、打开CAD文件 2 5、定义启动CAD对象的函数 2 实例2 获取CAD中图形对象 5 1、获取CAD图形对象 5 2、CAD中常用图形对象名称 5 3、获取鼠标点击位置 5 实例3 直线对象 7 1、获取直线

xianshengsun的博客 3130

第1章 机器人SLAM算法工程师主要做什么的?(附SLAM学习路线及资料推荐)

对于想从事机器人与自动驾驶领域的在校大学生、研究生来说,建图定位算法工程师是一个极具发展潜力的岗位,而SLAM知识体系则是胜任该岗位的核心支撑。从基础的计算机工具、C++语言,到核心的开源框架、数学知识,再到硬件衔接与项目实践,每一个环节都不可或缺。建议大家结合自身兴趣确定侧重方向(如激光SLAM、融合定位),先通过开源项目建立实践认知,再补全理论知识,同时积极参与社区交流。

行知SLAM 955

深度剖析OpenHarmony AI Engine:开发板端侧大模型推理插件机制全链路拆解

/ 加载动态库// 获取符号地址// 关闭动态库// 获取错误信息public:// 单例获取// 销毁实例// 加载插件// 卸载插件private:// 获取插件实例// 插件映射锁// 插件映射表public:Plugin();~Plugin();// 加载算法// 卸载算法// 获取算法实例// 设置算法实例private:// 算法接口指针// 动态库句柄// 算法ID// 版本信息// 配置信息字符串int len;

m0_67505153的博客 509
上一篇: 基于Visual C#的AutoCAD开发——实例1 基本例子
下一篇: 基于Visual C#的AutoCAD开发——实例11 绘制基本图形
大侠肖
博客等级 码龄19年 419粉丝 135原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值