精华内容
下载资源
问答
  • 获取多段线每个点 int num = pPolyline-> numVerts(); // 剩余点 int SYnum = num; // 移除点 int YCnum = 1 ; // 从序号中减去的数值 相当于已经减少了的点 int Item = 0 ; // 循环求每...
    #include "StdAfx.h"
    #include "FgPoly.h"
    #include "DwgDatabaseUtil.h"
    
    
    CFgPoly::CFgPoly()
    {
    }
    
    
    CFgPoly::~CFgPoly()
    {
    }
    AcDbObjectIdArray CFgPoly::FG(AcDbPolyline *pPolyline, double l)
    {
        AcDbObjectIdArray objArr;
        //获取多段线每个点
        int num = pPolyline->numVerts();
        //剩余点
        int SYnum = num;
        //移除点
        int YCnum = 1;
        //从序号中减去的数值 相当于已经减少了的点
        int Item = 0;
        //循环求每2点间距离
        for (int i = 0; i < num - 1; i++)
        {
            
            AcGePoint3d p1;
            pPolyline->getPointAt(i-Item, p1);
            double a = 0;
            pPolyline->getBulgeAt(i - Item, a);
            if (a!=0)
            {
                YCnum++;
                continue;
            }
            AcGePoint3d p2;
            pPolyline->getPointAt(i-Item + 1, p2);
            double distance;
            distance = p1.distanceTo(p2);
            acutPrintf(_T("\n多段线中第%d段直线的长度 %f"),i+1, distance);
            for (double temp = distance; temp > l; temp = temp - l)
            {
                AcGeVector3d vec;
                vec = p2 - p1;
                AcGePoint3d p3;
                vec = vec.normal();
                p3 = p1 + vec * l;
                //输出p3点
                acutPrintf(TEXT("\n截断点的坐标 %f,%f,%f"), p3.x, p3.y, p3.z);
                AcGePoint2d p12d = CDwgDatabaseUtil::converto2d(p1);
                AcGePoint2d p32d = CDwgDatabaseUtil::converto2d(p3);
                AcRxObject *obj = pPolyline->clone();
                AcDbPolyline *newPoly = new AcDbPolyline();
                newPoly =AcDbPolyline::cast(obj);
                for (int j = i; j < num-1; j++)
                {
                    newPoly->removeVertexAt(YCnum);
                }
                newPoly->addVertexAt(YCnum, p32d);
                pPolyline->addVertexAt(0, p32d);
                Item = Item - 1;
                for (int k = YCnum; k > 0;k--)
                {
                    pPolyline->removeVertexAt(1);
                    Item += 1;
                    YCnum--;
                    if (YCnum<1)
                    {
                        YCnum = 1;
                    }
                }
                
                CDwgDatabaseUtil::PostToModleSpace(newPoly);
                p1 = p3;
            }
    //         if (distance>l)
    //         {
    //             2 == pPolyline->numVerts();
    //             continue;
    //         }
            YCnum=YCnum+1;
        }
        return objArr;
    }

     

    转载于:https://www.cnblogs.com/xzh1993/p/4666448.html

    展开全文
  • 使用polyline的getSplitCurves方法进行分割曲线时,传入的Point3d点数组,或者Param值数组,必须先进行排序,按从曲线的起点到终点的走向,才能返回正确的曲线列表。否则切割出来的线段数量不是你想要的。 用...

    使用polyline的getSplitCurves方法进行分割曲线时,传入的Point3d点数组,或者Param值数组,必须先进行排序,按从曲线的起点到终点的走向,才能返回正确的曲线段列表。否则切割出来的线段数量不是你想要的。
    用GetParameterAtPoint将点转为参数,或者GetDistAtPoint将点转为距离,然后按从小到大的顺序进行排列。

    附:
    CAD NET二次开发-Curve类函数
    1.GetArea
    功能:获取曲线面积值;
    2.GetClosestPointTo
    功能:获得曲线外点到曲线最近距离曲线上的点,或者两条曲线间最近距离的点

    3.GetDistAtParam
    功能:获得曲线上任一参数到曲线起点参数的距离或者曲线上两参数间的距离
    public virtual double GetDistanceAtParameter(double value);
    4.EndParam
    获得曲线终止点的参数值
    Curve.EndParam
    5.EndPoint
    获取曲线端点
    Curve.EndPoint
    6.GetFirstDerivative
    获得曲线上一点处的一阶上数(沿曲线前处方向在该点处的切向量)
    方法1:public virtual Vector3d GetFirstDerivative(Point3d point);
    方法2:public virtual Vector3d GetFirstDerivative(double value);
    7.GetDistAtPoint
    获得曲线上任一点到曲线起点的距离或者曲线上两点间的距离
    public virtual double GetDistAtPoint(Point3d point);
    8.GetParameterAtDistance
    获得曲线上据起点指定距离处的曲线的参数值
    public virtual double GetParameterAtDistance(double dist);
    9.GetParamAtPoint
    获得曲线上给定点处的曲线的参数值
    public virtual double GetParameterAtPoint(Point3d point);
    10.GetPointAtParameter
    返回指定参数值位置的曲线值的点
    public virtual Point3d GetPointAtParameter(double value);
    11.GetPointAtDist
    返回曲线上距离起点指定距离处的点
    public virtual Point3d GetPointAtDist(double value);
    12.GetSecondDerivative
    获得曲线上一点(或者参数值)处的二阶导数(在该点处的曲率)
    方法1:public virtual Vector3d GetSecondDerivative(double value);
    方法2:public virtual Vector3d GetSecondDerivative(Point3d point);
    方法2中的点必须在曲线上
    13.StartParam
    获得曲线起始点的参数值
    Curve.StartParam
    14StartPoint
    获得曲线起点
    Curve.StartPoint
    15.Closed
    检查曲线是否闭合
    Curve.Closed
    16.GetOffsetCurves
    偏移曲线
    public virtual DBObjectCollection GetOffsetCurves(double offsetDist);
    说明:沿曲线前进方向,左上为正,右下为负
    17.GetOrthoProjectedCurve
    获得曲线对一个平面投影后的新曲线
    public virtual Curve GetOrthoProjectedCurve(Plane planeToProjectOn);
    PLANE: 1、 表 (原点 Z轴向量)
    2、(原点 X轴向量 Y轴向量)
    3、(原点 X轴向量 Y轴向量 Z轴向量)

    展开全文
  • CAD如何编辑多段线的顶点信息, 1.在命令行输入Pedit(PE)命令; 2.选择需要修改的多段线; 3.在选择中之后,会出现以下选项:[闭合(C)/合并(J)/宽度(W)/编辑顶点(E)/拟合(F)/样条曲线(S)/非曲线化(D)/线型生成...

    CAD如何编辑多段线的顶点信息,

    1.在命令行输入Pedit(PE)命令;

    2.选择需要修改的多段线;

    3.在选择中之后,会出现以下选项:[闭合(C)/合并(J)/宽度(W)/编辑顶点(E)/拟合(F)/样条曲线(S)/非曲线化(D)/线型生成(L)/反转(R)/放弃(U)],输入E 确定;

    4.执行第三步骤之后会出现以下选项:[下一个(N)/上一个(P)/打断(B)/插入(I)/移动(M)/重生成(R)/拉直(S)/切向(T)/宽度(W)/退出(X)] <N>:

    此时会有一个顶点被选中,如下图:

     5.在按照提示输入M,即可用鼠标移动当前顶点;

    6,如需插入新的顶点,可以选择I;

     

     

    展开全文
  • 多条相交线以交点快速打断,得到独立的线段。适用对象:直线L、多段线PL、圆C、矩形REC、椭圆El、圆弧ARC、样条曲线SPl。使用方法:①输入AP②找到BreakObjects.lsp...

    多条相交线以交点快速打断,得到独立的线段。

    适用对象:直线L、多段线PL、圆C、矩形REC、椭圆El、圆弧ARC、样条曲线SPl。

    使用方法:

    ①输入AP

    ②找到BreakObjects.lsp文件

    ③点击加载

    ④输入breakall(打断所有)

    文件自带更多命令,自己尝试即可(哪位学霸翻译一下哈,翻译了可以留言)

    BreakAll -      Break all objects selected

    BreakwObjects - Break many objects with a single object

    BreakObject -   Break a single object with many objects 

    BreakWith -     Break selected objects with other selected objects

    BreakTouching - Break objects touching the single Break object

    BreakSelected - Break selected objects with any  objects that touch it 


    演示一:加载/使用方法

    插件下载链接http://t.cn/EtSit5z

    展开全文
  • PL_BreakX 在这一点上打断多段线 PL_DelPoint 从多段线删除点 PL_DividedPoints 返回除以给定的多段线(无论是在“实体”的形式或列表的形式)所获得的点 PL_DrawLeaders 沿线各段多段线绘制的领袖,从而呈现出多段...
  • CAD打断命令

    2019-06-27 09:17:01
    该命令作用于直线、射线、圆弧、椭圆弧、多段线和构造线等。 打断命令将会删除对象上位于第一点和第二点之间部分。第一点选择该对象时的拾取点,第二点为选定的点,如果选定的第二点不在对象上,系统将选择对象上离...
  • 我们常常会对绘制的CAD图形进行各种编辑修改操作。若是对一个完整的CAD图形进行修改使其分开,则可以使用打断命令操作。...例如,在软件左侧绘图工具箱中,我们选择【多段线】工具,在绘图区中任...
  • 在路网的表示里面,一道路以交叉路口为分界打断。但是,使用ArcGIS工具进行批量打断线要素的话,对复杂路网则不太合适。下面,简单介绍一下路网表示、ArcGIS批量打断线要素的方法,和批量打断路网需要注意的问题。...
  • 线程理解(一) 三大特性

    千次阅读 2018-07-19 17:47:43
    进程、线程和线程的定义。 进程:是指一具有某种独立功能的程序关于某个数据集合的一次运行活动(一程序的执行过程)。 线程:单个进程执行中的... 可见性:可见性是指个线程访问同一个变量的时候,一个线...
  • 做喷淋时,绘制喷头连接管道的时候,使用Revit自带的功能,必须一个个进行连接,机械且耗时: 先将开发思路分析一下: 拾取一个管道;...但是从第二个喷头开始,管不在是一条,需要找到点到线最近的那个投影
  •  错综复杂的的形状编辑选项让你更容易修改你的图形的比率、尺寸、旋转、偏斜、 透视图法, 也可将你的图形切成薄片或打断成片断.  自动成形可以新增及编辑复杂的形状, 轻而易举的制作像3D 立方体.  输入及动态...
  • 将你的图形切成薄片或打断成片断.  自动成形可以新增及编辑复杂的形状, 轻而易举的制作像3D 立方体.  输入及动态文字可以让你轻易新增输入表格.  指南、网格、抓图及对齐选项.  绘图工具画面  -----------...
  •  错综复杂的的形状编辑选项让你更容易修改你的图形的比率、尺寸、旋转、偏斜、 透视图法, 也可将你的图形切成薄片或打断成片断.  自动成形可以新增及编辑复杂的形状, 轻而易举的制作像3D 立方体.  输入及动态...
  • 利用fme拓扑处理及常用涵数介绍

    千次阅读 2012-11-08 03:32:16
    一、利用现有线进行构面 Extender:对线的延伸,需要给定适合的参数 SelfIntersector:线与线相交处...linejoiner:把多段线连成一条 二、利用已有首位相连线进行构面 利用geometrycoercer涵数,可以将线要素直
  • EPS学习笔记1----------常用快捷键

    千次阅读 2020-07-14 09:55:40
    常用快捷键: Ctrl+w:打断线段 S: 捕捉交点 F:捕捉最后绘制点 D:线上捕捉点 ...C:多段线闭合 G:面状填充 画线状态下的快捷键:1表示绘制直线段;2表示绘制曲线段;3表示绘制弧线段(两点弧) ...
  • 写在前面   随着研究生阶段学习的深入,逐渐地...  该功能可以将条在空间上相交的线段在其相交点处一次性全部打断,这样你可以不用重复一天天的手动分割线段。使用上,先选择条线段,再在Advanced Editing中
  • CAD合并命令

    2019-07-22 09:18:05
    是使打断对象,或者相似对象合并为一个对象。 可以使用圆弧和椭圆弧创建完整... 合并对象包括:圆弧、椭圆弧、直线、多段线和样条曲线。 1.单击编辑工具栏“合并命令”按钮。 2.在命令行中输入Join,按回车键。 ...
  • CAD左手键快捷命令表

    2014-12-02 17:31:51
    A *ARC 创建圆弧 AD *ATTEDIT 改变属性信息 AA *AREA 计算对象或指定区域的面积和周长 AG *ALIGN 将对象与其他对象对齐 ...BD *BOUNDARY 从封闭区域创建面域或多段线 BR *BREAK 打断选定对象 C *CIRCLE 创建圆
  • PL=多段线; U回车=Ctrl+z=后退; D=修改,调整; REC=矩形; C=圆; TR=修剪; O=偏移; XL=放射线; X=分解; CO=复制; M=移动; MI=镜像; EL=椭圆; BR=打断; POL=多边形; LEN=拉长; S=拉伸...
  • ps->原子操作:从线程的开始到结束都不会被其他线程所打断的操作叫做原子操作 流水线: 在进程的指令执行的时候有很阶段,当这一些阶段,也就是指的是当前的指令在执行时,后面的好几条指令同时也在被解码,...
  • = 在上节课程学习中,我们讲解了AutoCAD的对象模型和配置Visual Studio 2013+...在这个dwg文件中可以绘制线段、多段线、圆、圆弧、样条曲线等增加实体(Entity)图形,也可以修改图形位置,打断、镜像、复制、删
  • CAD快捷键精华分享

    2011-06-18 11:05:48
    多段线:pl 正多边形:pol 矩形:rec 射线:ray 《修改》 圆弧:a 删除:e 圆:c 复制:co或者cp 修订云线:revcloud 镜像:mi 样条曲线:spl 偏移:o 椭圆:el 阵列:ar 插入块:i 移动:m 创建块:b 旋转:ro 点...
  • 2020-12-22

    2020-12-22 06:43:29
    PE,*PEDIT(多段线编辑) ED,*DDEDIT(修改文本) 三、常用CTRL快捷键 在CAD软件经常使用到的CTRL快捷命令,同样能在我们绘制CAD图纸的时候帮到我们不少的忙。 CAD CAD电脑图解-4 视窗缩放: P,*PAN(平移) ...
  • CAD快捷命令

    2010-12-28 18:31:00
    PL=多段线; U回车=Ctrl+z=后退; D=修改,调整; REC=矩形; C=圆; TR=修剪; O=偏移; XL=放射线; X=分解; CO=复制; M=移动; MI=镜像; EL=椭圆; BR=打断; POL=多边形; LEN=拉长; S=拉伸...
  • BD *BOUNDARY 从封闭区域创建面域或多段线 BR *BREAK 打断选定对象 C *CIRCLE 创建圆 CA *CAL 计算算术和几何表达式 CC *COPY 复制对象 CF *CHAMFER 为对象的边加倒角 CT *CUTCLIP 剪切图形 CR *COLOR 设置新对象的...
  • 转载请注明出处:csdn火木达人 BUG描述:当网络正常的时候可以正常请求,但是当网络不正常的时候,CCHttpClient的线程体过一时间会崩溃掉。 原因:libcurl 中设置...libcurl使用alarm来实现超时的判断,在多线
  • VimHabitsOfDreamonly

    2018-06-10 18:54:34
    影响开发效率的因素很,有一项基本要素是编码过程中思维的连续程度。程序员开发代码往往不是线性效率,设计与实现是一件非常消耗精力的事,一般会在一个窄的时间,思考到比较兴奋,忍不住要开始写。在这时间...
  • PL=多段线; C=圆; TR=修剪; O=偏移; CO=复制;M=移动; MI=镜像;D=修改、调整; X=分解; RO=旋转; XL=放射线; U回车=Ctrl+z=后退;REC=矩形; EL=椭圆; BR=打断; POL=多边形; LEN=拉长; S=拉伸; ...
  •  可重入代码是指可以被个任务同时调用,而不会破坏数据的一代码;或者说代码具有在执行过程 中打断后再次被调用的能力。  (2)处理器支持中断,并且能产生定时中断  ARM处理器支持中断并能产生定时中断。 ...

空空如也

空空如也

1 2 3
收藏数 53
精华内容 21
关键字:

打断多段线