zoukankan      html  css  js  c++  java
  • AutoCAD.net: 如何实现裁剪功能Trim

    引自http://www.objectarx.net/bbs/viewthread.php?tid=1785&extra=page%3D1&page=2

    public void TrimMap(Polyline cutBox)
    {
        
    //关闭对象捕捉功能避免误删除
        Application.SetSystemVariable("SNAPMODE"0);
        Application.SetSystemVariable(
    "MODEMACRO""正在修剪");
        
    //获取最小与最大点
        Point3d minPoint = cutBox.GeometricExtents.MinPoint;
        Point3d maxPoint 
    = cutBox.GeometricExtents.MaxPoint;
        
    //设置缩放视口
        Tools.RunCommand("Zoom""W"new Point3d(minPoint.X - 10, minPoint.Y - 100), new Point3d(maxPoint.X + 10, maxPoint.Y + 100));
        
    //裁剪精度
        Polyline offsetBox = cutBox.GetOffsetCurves(0.2)[0as Polyline;
        
    if (offsetBox.Area < cutBox.Area)
        
    {
            offsetBox 
    = cutBox.GetOffsetCurves(-0.2)[0as Polyline;
        }

        
    //裁剪
        for (int i = 0; i < offsetBox.NumberOfVertices; i++)
        
    {
            Point3d p1 
    = offsetBox.GetPoint3dAt(i);
            Point3d p2 
    = new Point3d();
            
    if (i == offsetBox.NumberOfVertices - 1)
            
    {
                p2 
    = offsetBox.GetPoint3dAt(0);
            }

            
    else
            
    {
                p2 
    = offsetBox.GetPoint3dAt(i + 1);
            }

            Tools.RunCommand(
    "TRIM", cutBox.ObjectId, """F", p1, p2, """");
        }

        offsetBox.Dispose();
        Application.SetSystemVariable(
    "MODEMACRO""修剪完成");
    }
  • 相关阅读:
    Expedition(POJ 2431)
    spring异步@Async原理和注意问题
    springBoot事件
    spring定时任务原理
    BeanFactory和FactoryBean的区别
    Spring容器启动流程——源码阅读分析
    spring循环依赖
    spring相关的问题和原因分析
    zookeeper原理
    zookeeper的使用
  • 原文地址:https://www.cnblogs.com/wf225/p/1263206.html
Copyright © 2011-2022 走看看