Civil 3D 2013利用API把三角网曲面提取为栅格网

简介:


Civil 3D 2013中对曲面的.net API做了增强,可以让我们从三角网曲面中提取栅格网。先看看效果:

image

 

下面的代码演示了从一个三角网曲面中提取三维栅格网,这些栅格网是由红色是三维多段线polyline构成的。

//
using System;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.Civil.DatabaseServices;
using Autodesk.Civil;

// This line is not mandatory, but improves loading performances
[assembly: CommandClass(typeof(SurfaceApiInCivil3D2013.MyCommands))]

namespace SurfaceApiInCivil3D2013
{

    // This class is instantiated by AutoCAD for each document when
    // a command is called by the user the first time in the context
    // of a given document. In other words, non static data in this class
    // is implicitly per-document!
    public class MyCommands
    {
        static Document _doc = Application.DocumentManager.MdiActiveDocument;
        static Editor _editor = _doc.Editor;
        static Database db = _doc.Database;

        private ObjectId promptForTinSurface()
        {
            PromptEntityOptions options = new PromptEntityOptions(
                "\nSelect a TIN Surface: ");
            options.SetRejectMessage(
                "\nThe selected object is not a TIN Surface.");
            options.AddAllowedClass(typeof(TinSurface), true);

            PromptEntityResult result = _editor.GetEntity(options);
            if (result.Status == PromptStatus.OK)
            {
                // Everything is cool; we return the selected
                // surface ObjectId.
                return result.ObjectId;
            }
            return ObjectId.Null;   // Indicating error.
        }

        [CommandMethod("CDS_ExtractGrid")]
        public void CDS_ExtractGrid()
        {
            ObjectId surfaceId = promptForTinSurface();
            if (surfaceId == ObjectId.Null)
            {
                _editor.WriteMessage("\nNo TIN Surface selected.");
                return;
            }

            using (Transaction tr = db.TransactionManager.StartTransaction())
            {
                TinSurface surface = surfaceId.GetObject(OpenMode.ForRead)
                    as TinSurface;
                ObjectIdCollection ids = surface.ExtractGridded(
                    SurfaceExtractionSettingsType.Model);

                foreach (ObjectId id in ids)
                {
                    Polyline3d polyline =
                        id.GetObject(OpenMode.ForWrite) as Polyline3d;
                    if (polyline != null)
                    {
                        using (polyline)
                        {
                            polyline.Color =
                                Autodesk.AutoCAD.Colors.Color.FromRgb(255, 0, 0);
                        }
                    }
                }
                tr.Commit();
            }
        }


    }

}
 
想了解更多Civil 3D 2013 API,请看Civilized Development博客中的21WOJP系列 (21 Week Of JayPeak), JayPeak是Civil 3D 2013的代码名。
作者: 峻祁连
邮箱:junqilian@163.com 
出处: http://junqilian.cnblogs.com 
转载请保留此信息。


本文转自峻祁连. Moving to Cloud/Mobile博客园博客,原文链接:http://www.cnblogs.com/junqilian/archive/2013/02/22/2922020.html ,如需转载请自行联系原作者
相关文章
|
7月前
|
API C# 图形学
【Unity 3D】常见API的讲解以及在C#脚本中的执行(附源码)
【Unity 3D】常见API的讲解以及在C#脚本中的执行(附源码)
146 1
|
JavaScript 前端开发 定位技术
Vue 集成腾讯地图基础api Demo集合(基础地图引入与展示模块,地址逆解析,3D/2D切换 ,位置服务,mark标记)
Vue 集成腾讯地图基础api Demo集合(基础地图引入与展示模块,地址逆解析,3D/2D切换 ,位置服务,mark标记)
960 0
Vue 集成腾讯地图基础api  Demo集合(基础地图引入与展示模块,地址逆解析,3D/2D切换 ,位置服务,mark标记)
|
前端开发 API 开发者
3D Real 开发者工具 API threed-real-sdk.js
GitHub:https://github.com/BaiFeng3DREAL/threed-real-viewer详情:https://www.3dreal.com 用途 3D Real 开发者工具,可以帮助您开发自己的三维产品展示页面,提供了高度自定义的接口。
|
JavaScript 定位技术 API
ArcGIS API for JavaScript4.x 之加载2D、3D地图
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gisdoer/article/details/81545607 ArcGIS AP...
1534 0
|
API 容器 前端开发
[UWP-小白日记16]UWP中的3D变换API
原文:[UWP-小白日记16]UWP中的3D变换API 还没开始   好久没写博客了,再来开坑。 正文   Transform3D:“这个和CSS的3D好像的说”   PerspectiveTransform3D:这个用来指定容器是否具有3D空间,都是放在根容器下面的。
1233 0
|
19天前
|
JSON API 数据格式
淘宝 / 天猫官方商品 / 订单订单 API 接口丨商品上传接口对接步骤
要对接淘宝/天猫官方商品或订单API,需先注册淘宝开放平台账号,创建应用获取App Key和App Secret。之后,详细阅读API文档,了解接口功能及权限要求,编写认证、构建请求、发送请求和处理响应的代码。最后,在沙箱环境中测试与调试,确保API调用的正确性和稳定性。
|
1月前
|
供应链 数据挖掘 API
电商API接口介绍——sku接口概述
商品SKU(Stock Keeping Unit)接口是电商API接口中的一种,专门用于获取商品的SKU信息。SKU是库存量单位,用于区分同一商品的不同规格、颜色、尺寸等属性。通过商品SKU接口,开发者可以获取商品的SKU列表、SKU属性、库存数量等详细信息。
|
1月前
|
JSON API 数据格式
店铺所有商品列表接口json数据格式示例(API接口)
当然,以下是一个示例的JSON数据格式,用于表示一个店铺所有商品列表的API接口响应