找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2600|回复: 2

[分享] GeometryExtensions 源码及手册

[复制链接]

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-5-21 11:23:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 csharp 于 2014-5-21 12:02 编辑

Geometry extensions for AutoCAD .NET API.

                               
登录/注册后可看大图
Classes
  ClassDescription

                               
登录/注册后可看大图
CircularArc2dExtensionsProvides extension methods for the CircularArc2dType

                               
登录/注册后可看大图
CircularArc3dExtensionsProvides extension methods for the CircularArc2dType

                               
登录/注册后可看大图
EditorExtensionsProvides extension methods for the Editor type.

                               
登录/注册后可看大图
EllipseExtensionsProvides extension methods for the Ellipse type.

                               
登录/注册后可看大图
Point2dCollectionExtensionsProvides extension methods for the Point2dCollection type.

                               
登录/注册后可看大图
Point2dExtensionsProvides extension methods for the Point2d type.

                               
登录/注册后可看大图
Point3dCollectionExtensionsProvides extension methods for the Point3dCollection type.

                               
登录/注册后可看大图
Point3dExtensionsProvides extension methods for the Point3d type.

                               
登录/注册后可看大图
Polyline2dExtensionsProvides extension methods for the Polyline2d type.

                               
登录/注册后可看大图
Polyline3dExtensionsProvides extension methods for the Polyline3d type.

                               
登录/注册后可看大图
PolylineExtensionsProvides extension methods for the Polyline type.

                               
登录/注册后可看大图
PolylineSegmentRepresents a Polyline segment.

                               
登录/注册后可看大图
PolylineSegmentCollectionRepresents a PolylineSegment collection.

                               
登录/注册后可看大图
RegionExtensionsProvides extension methods for the Region type.

                               
登录/注册后可看大图
SplineExtensionsProvides extension methods for the Spline type.

                               
登录/注册后可看大图
Triangle<(Of <(<'T>)>)>Provides methods for the derived classes.

                               
登录/注册后可看大图
Triangle2dRepresents a triangle in a 2d plane. It can be viewed as a structure consisting of three Point2d.

                               
登录/注册后可看大图
Triangle3dRepresents a triangle in the 3d space. It can be viewed as a structure consisting of three Point3d.

                               
登录/注册后可看大图
Vector3dExtensionsProvides extension methods for the Vector3d type.

                               
登录/注册后可看大图
ViewportExtensionsProvides extension methods for the Viewport type.


                               
登录/注册后可看大图
Enumerations
  EnumerationDescription

                               
登录/注册后可看大图
CoordSystemAutoCAD coordinate systems enumeration.

                               
登录/注册后可看大图
TangentTypeTangent type enum

GeomExtDoc.jpg
geomsln.jpg

GeometryExtensions.zip

78.62 KB, 下载次数: 48

GeomExtDoc.zip

458.15 KB, 下载次数: 40

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 859个

财富等级: 财运亨通

 楼主| 发表于 2014-5-21 12:58:34 来自手机 | 显示全部楼层
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
using GeometryExtensions;
using AcAp = Autodesk.AutoCAD.ApplicationServices.Application;

namespace GeometryExtensionsTestCommands
{
    public class MjoinCommand
    {
        [CommandMethod("mjoin")]
        public void PolyJoin()
        {
            Document doc = AcAp.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            Editor ed = doc.Editor;
            TypedValue[] filter = {   
                new TypedValue(-4,"<OR"),
                new TypedValue(0, "ARC,ELLIPSE,LINE,LWPOLYLINE"),
                new TypedValue(-4, "<AND"),
                new TypedValue(0, "SPLINE"),
                new TypedValue(-4, "&"),
                new TypedValue(70, 8),
                new TypedValue(-4, "AND>"),
                new TypedValue(-4, "OR>")};
            PromptSelectionResult psr = ed.GetSelection(new SelectionFilter(filter));
            if (psr.Status != PromptStatus.OK) return;
            using (Transaction tr = db.TransactionManager.StartTransaction())
            {
                BlockTableRecord btr =
                    (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
                PolylineSegmentCollection psc = new PolylineSegmentCollection();
                Plane plane = new Plane(Point3d.Origin, Vector3d.ZAxis);
                foreach (ObjectId id in psr.Value.GetObjectIds())
                {
                    Entity ent = (Entity)tr.GetObject(id, OpenMode.ForRead);
                    switch (ent.GetType().Name)
                    {
                        case "Arc":
                            Arc arc = (Arc)ent;
                            psc.Add(new PolylineSegment(
                                new CircularArc2d(
                                    arc.Center.Convert2d(plane),
                                    arc.Radius,
                                    arc.StartAngle,
                                    arc.EndAngle,
                                    Vector2d.XAxis,
                                    false)));
                            break;
                        case "Ellipse":
                            Ellipse el = (Ellipse)ent;
                            psc.AddRange(new PolylineSegmentCollection(el));
                            break;
                        case "Line":
                            Line l = (Line)ent;
                            psc.Add(new PolylineSegment(
                                new LineSegment2d(
                                    l.StartPoint.Convert2d(plane),
                                    l.EndPoint.Convert2d(plane))));
                            break;
                        case "Polyline":
                            Polyline pl = (Polyline)ent;
                            psc.AddRange(new PolylineSegmentCollection(pl));
                            break;
                        case "Spline":
                            try
                            {
                                Spline spl = (Spline)ent;
                                psc.AddRange(new PolylineSegmentCollection((Polyline)spl.ToPolyline()));
                            }
                            catch { }
                            break;
                        default:
                            break;
                    }
                }
                foreach (PolylineSegmentCollection segs in psc.Join())
                {
                    Polyline pline = segs.ToPolyline();
                    btr.AppendEntity(pline);
                    tr.AddNewlyCreatedDBObject(pline, true);
                }
                tr.Commit();
            }
        }
    }
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

 楼主| 发表于 2014-5-21 17:38:35 | 显示全部楼层
本帖最后由 csharp 于 2014-5-21 17:39 编辑

http://www.theswamp.org/index.php?topic=31865.30
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-17 22:39 , Processed in 0.177556 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表