当前位置:文档之家› ArcGIS_Engine二次开发讲义

ArcGIS_Engine二次开发讲义

ArcGIS_Engine二次开发讲义
ArcGIS_Engine二次开发讲义

ArcGIS Engine二次开发实习初级讲义

目录

1 ArcGIS、ArcObjects和ArcGIS Engine简介....................................................................- 3 -

1.1 ArcGIS简介................................................................................................................- 3 -

1.2 ArcObjects简介..........................................................................................................- 4 -

1.3 ArcGIS Engine简介....................................................................................................- 5 -

2 ArcGIS控件介绍....................................................................................................................- 7 -

2.1 ArcGIS控件简介........................................................................................................- 7 -

2.2重要控件简介...............................................................................................................- 9 -

3 ArcGIS Engine二次开发入门............................................................................................- 16 -

3.1 ArcGIS Engine开发起步——第一个简单的地图显示程序..................................- 16 -

3.2 属性查询....................................................................................................................- 23 -

3.3 空间查询....................................................................................................................- 27 -

3.4 BaseCommand开发实例..........................................................................................- 36 -

3.5 BaseTool开发实例....................................................................................................- 38 -

3.6通过代码添加图层.....................................................................................................- 42 -

3.7基于比例尺显示地图.................................................................................................- 44 -

3.8 构建一个简单的GIS应用........................................................................................- 46 -

4.问题解决方法及帮助文档的使用........................................................................................- 58 -

4.1使用ArcObjects开发帮助系统...............................................................................- 58 -

4.2阅读对象模型图(Object Model Diagram).........................................................- 62 -

1 ArcGIS、ArcObjects和ArcGIS Engine简介

1.1 ArcGIS简介

ArcGIS提供了一个可伸缩的框架,可以为独立用户或者多用户,既可以在桌面端也可以在服务器端提供GIS。ArcGIS 9是用来构建一个完整GIS应用的GIS软件产品集成。它是基于共享的GIS软件组件——ArcObjects。ArcGIS 9由以下四部分组成:

●ArcGIS Desktop——高级GIS应用的集成

●ArcGIS Engine——根据应用程序接口来构建基本应用的嵌入式GIS组件库

●ArcGIS Server——在企业级或者网络框架下构建服务器端GIS应用的平台,用来

构建Web服务和Web应用

●ArcIMS——通过公开的因特网协议来发布地图、数据和元数据的GIS Web服务器

图1 ArcGIS产品结构图

每一个GIS框架同样包含ArcSDE网关,这是在关系数据库(RDBMS)上组织地理数据的接口。

ArcGIS是构建地理信息系统的平台。ArcGIS 9在地理数据处理、3D可视化表达和开发工具方面做了新的扩展。两个新的产品——ArcGIS Engine和ArcGIS Server在这个版本中发布,是ArcGIS成为一个应用程序及服务端开发的完整产品。

●使用ArcGIS能够开发出一系列的产品,开发者可以:

●配置/定制ArcGIS的应用,例如ArcMap和ArcCatalog

●扩展ArcGIS的结构和数据模型

●利用ArcGIS Engine在其他应用程序中嵌入地图和GIS功能

●使用ArcGIS Engine构建并部署桌面版应用程序

●使用ArcGIS Server构建Web服务和应用

ArcGIS系列产品是通过称之为ArcObjects的软件组件加以构建和扩展的。ArcObjects 包括一系列不同的程序组件,从高度封装的组件(例如独立的geometry objects)到低级组件(例如能够同已有的ArcMap文档集成的地图组件)。这些组件为开发者集成了大量的GIS 功能。

ArcGIS 9的全线产品都具备开发功能(Engine,Server和Desktop)。作为一个开发者,您能够使用标准程序框架结合ArcObjects来扩张ArcGIS Desktop;能够用ArcGIS Engine定制应用;能够使用ArcGIS Server构建企业级的GIS应用。

图2 ArcGIS开发结构图

ArcGIS Desktop包含了一些列的Windows桌面应用程序(例如,地图、目录、工具箱、地球方面的应用)。ArcGIS Desktop包含了三种功能级别(ArcView,ArcEditor和ArcInfo),使用ArcGIS Desktop开发包能够进行客户化和扩展。

ArcGIS Desktop的软件开发包(software developer kit,SDK)包含在ArcView,ArcEditor和ArcInfo内,支持COM(Component Objects Mode l,组件对象模型)和.NET 程序框架。许多开发者利用Desktop SDK扩展功能,创建新的GIS工具,定制用户界面,完善ArcGIS Desktop应用中专业GIS产品的扩展功能。

ArcGIS Server不仅定义和实现了一系列标准的GIS Web服务(例如,地图、数据访问、地理编码等),同时还支持利用ArcObjects进行企业级的服务端应用开发。

ArcGIS Server开发包让开发者能构建GIS服务器用来向多用户提供可供访问的GIS 功能,能通过客户端对大型GIS中央服务器进行处理,能构建和分发GIS Web应用,能进行分布式GIS运算。

1.2 ArcObjects简介

ArcObjects是ArcGIS Desktop的开发平台。

ArcGIS Desktop是一系列GIS软件系统:ArcInfo,ArcEditor和ArcView。这些系统服务于GIS,例如地理数据组织、控件编辑、分级可视化等功能。

ArcGIS Desktop系统包含一系列的应用,例如ArcCatalog、ArcMap、ArcT oolBox和ArcScene,并且能够集成大量不同的扩展产品,例如ArcGIS Spatial Analyst(空间分析模块),ArcGIS Geostatistical Analyst(地理统计分析模块),ArcGIS 3D Analyst(三维分析模块)等。

ArcObjects是使用微软的组件对象模型(Component Objects Model,COM)书写。因此,凡是支持COM标准的开发语言都能使用ArcObjects。您能向ESRI(Environment System Research Institute,环境系统研究所)的开发者一样,使用同样的方式来扩展ArcObjects中的任何一部分。

1.3 ArcGIS Engine简介

ArcGIS Engine是开发者用来构建应用程序的一整套嵌入式GIS组件。使用ArcGIS Engine,您可以将一些GIS功能嵌入到已有的应用程序中,这包括Microsoft Office产品,例如Word和Excel,建造有针对性的客户应用程序用来将高级GIS系统与他人分享。ArcGIS Engine由一个软件开发包(software development kit,SDK)和一个给所有ArcGIS应用提供平台的运行许可(runtime)构成。

构成ArcGIS Engine的五部分分别如下:

1)基本服务——几乎任何GIS应用都需要的核心GIS ArcObjects,例如几何(geometry),显示(display)等。

2)数据访问——ArcGIS Engine提供许多栅格和矢量数据的访问方式,包括与geodatabase相当的能力和灵活性。

3)地图表达——ArcObjects使用符号、注记和专题地图来生成和表达地图。

4)开发组件——用来快速定制应用开发程序的高度封装用户接口以及开发过程中全面的帮助系统。

5)运行许可——ArcGIS Engine运行许可可以部署标准功能或者加入一些附加的高级功能。

这中间除了运行许可之外的任何一部分,都打包集成到ArcGIS Engine开发包(SDK)中。ArcGIS Engine运行许可及其选项,尽管是开发完整的GIS应用程序中的一部分,但包含了应用部署,所以被单独打包。

1.3.1 ArcGIS Engine Software Developer Kit

ArcGIS Engine SDK是用来开发和部署GIS及地图方面应用程序的组件化软件开发产品。ArcGIS Engine SDK不是终端产品而是共应用开发者使用的软件包。它能构建基本的地图浏览或者全面的、动态的GIS编辑工具。使用ArcGIS Engine SDK,作为开发者,您在定制地图功能接口方面有空前的自由。您可以使用许多API中的一些来构建独一无二的应用程序或者将ArcGIS Engine组建与其他软件组建整合,来实现地图和用户需要的其他信息之间的完美结合。

使用ArcGIS Engine,地图既能够作为应用程序的核心,也可以作为一个可选项。例如,如果您的应用主要是数据库中的商务信息,当您查询数据库的时候,ArcGIS Engine能够将您感兴趣的商业信息在地图上高亮显示定位出来。

ArcGIS Engine SDK提供了大量的GIS组件,或者称为ArcObjects,按照之前的介绍,包括基本服务、数据访问和地图表达。之前提到的ArcGIS Engine的第四部分,也就是开发组件,也包含在SDK中间。这些都是用来构建一个高质量地图接口的开发控件。下面列

出的ArcGIS控件,或者说可视化控件,用来辅助应用程序开发(下文将针对控件进行更加详细的介绍)。

●MapControl

●PageLayoutControl

●SceneControl

●GlobeControl

●T oolbarControl

●TOCControl

●ReaderControl

●T oolbarControl中所用到的commands(命令)、tools(工具)和menus(菜单)

1.3.2 ArcGIS Engine Runtime

ArcGIS Engine的最后一部分是运行许可。所有用ArcGIS Engine SDK构建出的应用程序都需要不同级别的ArcGIS Engine运行许可才能够正常运行。ArcGIS Engine Runtime 是ArcGIS Desktop(ArcGIS桌面版)构建的平台,如果得到ArcGIS Engine应用开发许可,ArcGIS Desktop的用户就能够执行基本的基于Engine的应用。ArcGIS Engine Runtime 从标准功能到企业级功能之间有许多不同的选择。

1.3.3 ArcGIS Engine的功能

ArcGIS Engine的功能十分强大。作为ArcGIS Engine开发者,您可以实现以下列出的和其他更多的功能,这包括:

●用多个图层来显示地图,例如道路、水系、边界等

●地图的漫游和缩放

●地图上要素的确认

●地图上要素的查询和定位

●根据属性值显示注记

●根据航片或者卫片显示图像

●绘制几何图形,例如点、线、弧、多边形

●添加描述性的文字

●沿着线选择或者选择矩形、某一范围内、多边形等内部的要素

●选择距离在某一范围内的要素

●利用SQL语言来寻找和选择要素

●利用专题地图来渲染要素,如唯一值法、分级法和点状密度法

●动态显示实时地图或者时序数据

●根据地理编码来寻找位置

●转换您地图的坐标系

●根据几何操作来生成缓冲区、计算差值,或者进行求交、求并等运算

●编辑要素形状或者旋转地图

●创建并更新要素的几何形状及其属性

编辑要素(Editing Features)

ArcGIS Engine开发包让您构建出能创建、修改和删除geodatabase中矢量要素或者shapefile文件的应用程序。标准的ArcGIS Engine Runtime能够让编辑shapefile文件或者personal geodatabase中简单要素的程序运行。然而,要构建企业级geodatabase的全部

功能,就需要ArcGIS Engine Runtime中的Geodatabase Update选项。

空间建模和分析

通过增加ArcGIS Engine Runtime中的Spatial选项,您能够扩展ArcGIS Engine的功能。这个选项(Spatial选项)能提供一系列强劲的空间建模和分析功能。您能够创建、查询、表达和分析基于象元的栅格数据,能够集成栅格和矢量数据进行分析,能够从已有数据挖掘出新的信息,能够从多层数据中查询信息,能够在ArcGIS Engine应用程序中完美集成基于象元的栅格数据和矢量数据。

例如,您能够:

●将要素(如点、线或者面)转化成栅格图

●基于距离或者要素、栅格间的关系来创建栅格缓冲区

●根据点状要素生成密度图

●生成等高线、坡度、可视化区域、方向和山体阴影

●栅格图的分类及显示

●兼容TIFF,BIL,IMG,USGS DEM,SDTS,DTED等标准格式及多种其他格式

数据

●三维可视化等

ArcGIS Engine Runtime中的3D选项让您通过使用Scene和Globe控件来有效的表达和分析区域及全球数据。您能够从多个不同的视点查看表面;您能够查询表面,决定从某个选中的位置看,哪些要素是可见的;您能够将栅格和矢量数据贴在表面以构建真实的透视影像。

例如,您能够:

●显示Scene和Globe文档

●展示交互性的透视图,包括漫游、缩放、旋转、倾斜、模拟飞行以便于表达和分

●显示真实世界的表面要素,例如楼房

●展示视域和可见范围分析、场景高度内插、剖面分析和最短距离分析

2 ArcGIS控件介绍

在ArcGIS Engine的二次开发中,ArcGIS控件给我们提供了具体的开发环境和方法。在ArcGIS Engine中共有7个控件,另外在部署过程中还有一个LicenceControl。下面将首先介绍ArcGIS控件,再详细介绍实习中可能用到的MapControl,TOCControl以及T oolbarControl。

2.1 ArcGIS控件简介

ArcGIS的控件是高度集成化的,首先能够让开发者构建和扩展ArcGIS的功能,其次能够提供图形用户界面(graphical user interface,GUI)。

下列展示出的每一个ArcGIS控件都可以被作为ActiveX控件,.NET控件或者可视化的JavaBean:

●MapControl——类似于“数据”

●PageLayoutControl

●T oolbarControl

●TOCControl(T ablet of Contents Control)

●SceneControl

●GlobeControl

●ReaderControl

使用ArcGIS控件,可以用两种方式来构建应用程序,首先,ArcGIS控件可以被嵌入到已有的应用程序中,将地图相关的功能作为辅助添加进去,或者其次,ArcGIS控件可以用来创建一个独立的应用程序。不管使用哪种方式,一个独立的ArcGIS控件能够被嵌入到已有程序中或者TOCControl和T oolbarControl能够和其他ArcGIS控件联合使用,提供应用程序的部分框架。

对于所有的ArcGIS控件来说,有一些共同的主题、概念和应用方法等,在有效的使用这些控件来构建应用程序之前,有必要先有一定的理解。

2.1.1 嵌入式控件(Embeddable Components)

每个ArcGIS控件都是一个可嵌入的控件,能被放置到提供可视化编程环境的窗体或者对话框内。被放置之后,这些ArcGIS控件能够连同别的嵌入式控件(例如命令按钮,下拉列表框等)一样重新定义尺寸和位置以构建应用程序中的用户界面。

2.1.2 属性页(Property Pages)

当每一个ArcGIS控件被放置到窗体或者对话框中之后,鼠标右键点击控件,从弹出菜单中选择“Properties”(属性),都会分别弹出一系列的属性页。这些属性页提供了控件的部分属性和方法,并且允许开发者不使用或使用极少的代码来完成应用开发。

2.1.3 ArcObjects

每一个ArcGIS控件都封装了一些粗粒度(coarse grained)的ArcObjects以简化用户的开发工作,但同时也提供了访问高粒度(finer grained)ArcObjects的方法。例如,PageLayoutControl控件封装了PageLayout对象(PageLayout Object)。PageLayout对象包含了至少一个MapFrame元素,其中有一个包含有多层矢量图、要素或者通常所说的Layer对象的Map对象。每一个ArcGIS控件提供了封装在ArcObjects中最频繁使用的属性和方法的访问方法。例如,MapControl中的SpatialReference(空间参考)属性项,提供了设置地图对象中空间参考属性的方法。每一个ArcGIS控件同时也有一些实现简单任务的方法。例如,MapControl有AddShapeFile(用来添加ShapeFile文件)方法。ArcGIS 控件是典型应用开发的起点,不仅因为它们提供用户界面,同时也提供对象模型的直接方法。

2.1.4 事件(Events)

每一个ArcGIS控件都能相应终端用户的键盘和鼠标操作。其他的事件用于相应控件内部的操作。例如,当一个地图文件被载入到MapControl中时,会触发OnMapReplaced事件,或者说当一个对象被拖拽到MapControl上时,会触发OnOleDrop事件。

2.1.5 伙伴控件(Buddy Controls)

T oolbarContro l和TOCControl需要和其他“伙伴控件”协同工作。通常说来,“伙伴控件”指的是MapControl,PageLayoutControl,ReaderControl,SceneControl或者GlobeControl。“伙伴控件”可以在设计时通过控件的属性页来设置(在支持属性页的编译

环境中设置)或者在程序中用SetBuddyControl方法来设置。

2.1.6 控件命令(Control Commands)

ArcGIS Engine提供了与ArcGIS控件一起工作的一系列命令(commands),工具(tools)和菜单(menus)。例如,MapControl和PageLayoutControl可以使用地图浏览,要素选择和图形元素命令等。类似的,也有许多可供SceneControl,GlobeControl和ReaderControl使用。对于使用独立控件的程序来说,在程序中新建一个命令的实例,并将这个实例通过OnCreate事件传递给控件就可以直接使用。对于连同“伙伴控件”一起使用T oolbarControl的应用程序来说,这些命令可以被直接添加到T oolbarControl中,既可以在设计时通过属性页加入,也可以在程序运行过程中书写代码加入,如果在运行过程中,T oolbarControl处于客户定制状态,还可以由终端用户添加。

开发者可以使用ArcGIS Engine创建自己的命令、工具和菜单来扩展ArcGIS控件。HookHelper,GlobeHookHelper和SceneHookHelper对象能够用来简化开发。具体的开发方法将在第五章详细列出。

2.1.7 地图组织(Map Authoring)

ArcGIS Desktop应用程序能够创建预定义好的地图文件,之后载入到ArcGIS控件中以快速获得高质量的地图。例如,ArcMap能创建可被载入到MapControl和PageLayoutControl中的地图文件。预定义地图文件能够在组织地图数据和地图符号方面节省大量的时间。当地图文件被载入到ArcGIS控件中之后,在需要改变地图外观的时候,对象模型仍然提供了通过程序来访问图层、元素和符号的方法。

下表小结了能够被载入到ArcGIS控件中的文件格式:

表1 ArcGIS控件对应的文件格式

*ArcReaderControl只有选择ArcGIS Publisher扩展之后才能获得。然而,这里将其列出来是因为与ReaderControl相似。

**ArcGIS控件还不提供直接载入图层文件(*.lyr)的方法。然而,它们可以通过MapDocument 对象间接载入。

2.2重要控件简介

本次实习可能用到MapControl,PageLayoutControl,TOCControl和T oolbarControl,下面分别介绍这四种控件。

2.2.1 MapControl 和PageLayoutControl

MapControl 和PageLayoutControl 分别对应ArcMap Desktop 应用中的“数据”和“发布”视图。MapControl 中封装了Map 对象,PageLayoutControl 中封装了PageLayout 对象。ArcMap 应用程序中组织的地图文件能够直接载入到MapControl 和PageLayoutControl 中,以省去程序配置地图的时间。

地图文件能够在设计时通过MapControl 和PageLayoutControl 的属性页(在支持属性页的开发环境中)设置,控件可以被设置为“链接”(link )或者“包含”(contain )地图文件。当选择“链接”时,控件将在生成的时候将地图载入并显示出地图文件的最新更新;而选择“包含”时,控件将会将地图文件中的内容复制到控件中,并且不再显示至此之后发生的文件更新。同时,您也可以选择使用LoadMxFile 方法在程序运行过程中载入地图文件(这种方法在之后的章节中会有详细介绍)。下面详细介绍MapControl 和PageLayoutControl 的属性页。

1. MapControl

在MapControl 控件上点击鼠标右键,选择属性,打开MapControl 的属性页。

属性页中包含General 、Map 、Color 、picture 四个选项卡。

General 选择卡:

Border Style:用于设置

MapControl 控件边界的样式

Appearance:用于设置

MapControl 控件的表现方式。

Mouse Pointer:用于设置鼠标在

MapControl 上的样式。

Enabled:设置控件是否可用,这

与属性表中的Enabled属性在功

能上是相同的。

Enable OLE Drop Event:设置控

件是否响应拖拽事件,例如:直接

将地图拖入MapControl

Preview in Design Mode: 设置是

否在控件设计模式下显示地图。

Arrow Key Intercept:设置是否容

许控件响应键盘

T ooltip Style:设置地图T ooltip的

样式(T oolTip是地图上的一种动

态标注。)

Map Document:用于载入

ArcMap产生的MXD文件,如果

您的文件时MXD类型的,可以选

择这种方式载入地图,或代码在程

序中载入。关于后一种方法会在

《通过代码载入图层》小节中加以

介绍。

选择地图载入的方式,有两种方式

载入地图,第一种是将地图数据载

入到MapControl中,这种方式下,

地图数据在生成程序时被载入到

内存中,之后所有对地图的操作,

在没有保存的前提下对原始的地

图文件没有影响。

第二种方式,通过连接方式载入地

图,表示对于地图的操作会影响到

原始数据。在MapControl中只是

保持着与地图数据的链接。

Map选项卡

Scale:显示地图比例尺

Reference Scale:地图参考比例尺

Rotation:设置地图的旋转角度

Units:设置单位

Spatial Reference:设置或更改地图的

空间参考。

Initial Map:初始化地图

从左到右按钮的功能依此是:

加载图层(图层可以是单图层文件,可

以使GoeDatabase,也可以是

Shapefile)

向上移动图层、向下移动图层、删除图

层、查看图层属性信息。

Color选项卡主要对地图颜色进行相关的设置,但通常关于地图的配色我们是通过代码来完成的,这个选项卡很少涉及。

Picture 选项卡主要是对控件中的相关图片资源进行管理,例如鼠标样式等。

2. PageLayoutControl

对于PageLayoutControl控件的属性页而言,唯一与MapControl不同的是他存在page 选项卡,该选项卡提供了页面大小,页面宽度和高度等修改的窗口。

MapControl和PageLayoutControl不仅可以读地图文件,同时也能写地图文件(*.mxd)。两个控件都实现了IMxdContents接口,使得MapDocument对象能将MapControl 和PageLayoutControl能够将其中的内容写入地图文件。

辅助方法(Helper Methods),例如MapControl中的TrackRectangle(鼠标绘制矩形),TrackPolygon(鼠标绘制多边形),TrackLine(鼠标绘制多段线)和TrackCircle(绘制弧形)方法能够在视口中绘制出可擦出的图形。VisibleRegion属性能够改变MapControl中显示区域的形状。辅助方法,例如PageLayoutControl中的FindElementByName和LocateFrontElement方法能帮助开发者组织元素,同时Printer和PrinterPageCount属性能够协同PrintPageLayout方法完成打印输出任务。

2.2.2 TOCControl

TOCControl需要与一个“伙伴控件”一同工作。“伙伴控件”可以是一个MapControl,PageLayoutControl,ReaderControl,SceneControl或者GlobeControl。“伙伴控件”能够在设计的时候通过TOCControl的属性页设置(在支持属性页的编译环境中),或者在程序运行中通过SetBuddyControl方法来设置。对每个TOCControl,“伙伴控件”都实现了ITOCBuddy接口。TOCControl利用“伙伴控件”来显示交互性的树结构目录,包括“伙伴控件”的地图、图层、符号等内容,并且保持树结构的内容与“伙伴控件”的内容一致。例如,如果TOCControl以MapControl作为其“伙伴”,则当一个图层从MapControl中移除的时候,这个图层也会同时从TOCControl中移除。同样的,如果终端用户通过交互式的TOCControl

设置,取消了某个图层的可见性,则MapControl中的相应图层也会不可见。

与MapControl不同的是,TOCControl的属性表中包含Buddy Control,如果你已经添加了MapControl,那么在下拉列表中你就会看到它,选择他就可以讲TOCControl与MapControl 绑定。

2.2.3 ToolbarControl

T oolbarControl需要与一个“伙伴控件”一同工作。“伙伴控件”可以是一个MapControl,PageLayoutControl,ReaderControl,SceneControl或者GlobeControl。“伙伴控件”能够在设计的时候通过T oolbarControl的属性页设置(在支持属性页的编译环境中),或者在程序运行中通过SetBuddyControl方法来设置。T oolbarControl包含了与“伙伴控件”的显示相关的一系列的命令(commands),工具(tools),工具控件(tool controls)和菜单(menus)。

对每个T oolbarControl,“伙伴控件”都实现了IT oolbarBuddy接口。这个接口是用来设置“伙伴控件”的CurrentT ool属性。例如,一个T oolbarControl中包含有一个“PageZoomIn”(页面放大)工具,并且将PageLayoutControl设置为“伙伴”,则当终端用户单击T oolbarControl上的“PageZoomIn”时,“PageZoomIn”将会成为PageLayoutControl的当前工具。“PageZoomIn”工具将查询T oolbarControl以访问其“伙伴控件”(PageLayoutControl)并且作用于PageLayout(页面视图),然后它将提供给终端用户显示和使用鼠标拉框的方法以改变PageLayout的显示范围。

T oolbarControl实现了ArcGIS 中的所有功能,用户可以在不编写一行代码的情况下,轻松构架出一个功能庞大的GIS软件,只要是ArcGIS中含有的功能,你都会在T oolbarControl中找到。但是这些功能都是事先封装好的,如果你想对这些功能进行进一步的扩展,难度很大。所以不要以为有了T oolbarControl 就可以摆脱学GIS二次开发的过程。

让我们来看看我们是如何使用T oolbarControl 的。

加相应的功能按钮。点击Add,会出现以下对话框。

该对话框包含了很多已经封装好的工具,包括复杂的空间分析功能。双击其中的功能或拖拽,就可以讲该功能添加到ToolBarControl中。需要删除时,在Items中的按钮列表中

将功能拖出即可,按钮列表如下图所示:

3 ArcGIS Engine二次开发入门

3.1 ArcGIS Engine开发起步——第一个简单的地图显示程序

这个例子将引导您创建第一个简单的地图显示程序,并添加基本的缩放和漫游功能。如果您之前没有接触过ArcGIS Engine的开发,那么这个例子是您迈入ArcGIS Engine二次开发大门的极好例子,如果您之前没有接触过Visual https://www.doczj.com/doc/ad14093366.html,,也无需担心,这个例子将从零开始引导您一步一步完成任务。

3.1.1 创建一个新的工程

首先打开Microsoft Visual Studio 2005,点击菜单栏中的“文件”—>“新建”—>“项目”,在弹出的对话框中选择新建一个Visual Basic的Windows应用程序,之后更改项目名称为“MapView”,更改文件的路径为个人实习文件夹,点击“确定”即可。

图23 新建项目对话框

3.1.2 添加控件及引用

点击编译器最左侧的“工具箱”,在弹出的选择项中找到“ArcGIS Windows Forms”项,单击其中的MapControl,之后在Form1的空白处单击鼠标左键不放并拖拽鼠标,直到调整MapControl到合适的大小再松开鼠标(您也可以直接在工具箱中双击MapControl,该控件则会自动加入到Form1中)。用同样的方法,再将LicenseControl添加到Form1中。

图24 工具箱

如果您在工具箱中找不到MapControl,则请依次尝试以下两种解决方案。首先单击工具栏,待工具箱弹出之后,在工具箱的任意位置上单击鼠标右键,从弹出菜单中选择“重置工具箱”。如果这一步操作之后仍然无法看到MapControl,则请滑动工具栏右侧的滚动条至最底部,找到“常规”选项卡,然后在“常规”选项卡上单击鼠标右键,在弹出菜单中单击“选择项(I)…”,在弹出的对话框中找到“AxLicenseControl”和“AxMapControl”,将这两项前的复选框打上勾,最后点击确定即可(如果在“.NET Framework组件”这个面板中找不到这两

项,则选择“COM 组件”面板,在“ESRI LicenseControl”和“ESRI MapControl”前面打勾)。

图25 重置工具箱

图26 选择项…

图27 选择工具箱项

图28 选择工具箱项

添加好MapControl和LicenseControl之后,调整Form1和MapControl的位置与大小,

如下图所示:

图29 窗体布局

3.1.3 添加地图

在MapControl上单击鼠标右键,选择“属性”,则会弹出MapControl的属性设置面板,在之前也介绍过,通过这个面板可以完成许多简单的工作。

如图所示,点击“Map”面板,之后点击按钮,在弹出的对话框中选择下图所示的路

径(注:笔者的ArcGIS安装在D盘,若您的ArcGIS装在别的盘符,请做相应修改),再在此路径下选择“States”,点击“Open”。之后在MapControl的属性页上点击“确定”即可。

图30 文件添加路径

至此,我们已经完成了一个最简单的地图显示程序,下面一起来看一下成果吧。点击“启动调试”按钮(或者在“调试”菜单下选择相应命令,或者按键盘的F5键),可以得到如下的运行结果。

图31 “启动调试”按钮

基于ANSYS的二次开发技术的实现方法

第24卷第5期辽宁工学院学报V o l.24 N o.5 2004年10月JOU RNAL O F L I AON I N G I N ST ITU T E O F T ECHNOLO GY O ct.2004① 基于AN SYS的二次开发技术的实现方法 吴 鹏1,曾 红1,韩 迈2 (1.辽宁工学院,辽宁锦州 121001;2.鞍山广播电视大学,辽宁鞍山 114000) 摘 要:基于大型通用有限元分析软件AN SYS8.0环境,对AN SYS二次开发技术进行了探讨,并对AN SYS 三种开发工具进行了详细的介绍。论述了采用二次开发方法设计产品的必要性和重要性,证实了以AN SYS为平台开发专业模块的可行性,提高了工作效率,缩短了产品的开发研制周期。 关键词:AN SYS;二次开发;A PDL;U I DL;U PF s 中图分类号:T P391.72 文献标识码:B 文章编号:100521090(2004)0520025205 Realization of Secondary D evelop m en t of Technology Based on ANS Y S W U Peng1,ZEN G Hong1,HAN M ai2 (1.L iaoning Institute of T echno logy,J inzhou121001,Ch ina;2.A nshan R adi o&TV U niversity,A nshan114000,Ch ina) Key words:AN SYS;Secondary developm en t;A PDL;U I DL;U PF s Abstract:T he m ethod of secondary developm en t of techno logy on the basis of large-scale fin ite elem en t analysis softw are—AN SYS is described and app roached,w h ich details th ree k inds of de2 velop ing too ls of AN SYS.It dem on strates the necessity and i m po rtance of the m ethod of sec2 ondary developm en t of techno logy.T he feasib ility of develop ing p rofessi onal m odu le on the AN2 SYS p latfo r m is verified,w o rk ing efficiency i m p roved,and the developm en t cycle of the p roducts sho rtened. 从20世纪70年代以来,随着计算技术的飞速发展,结构分析有了很大的突破,国外相继出现了许多大型通用有限元分析程序,如AN SYS, ABAQU S,M A RC和M SC NA STRAN等,这些程序具有良好的界面、方便的前后处理和强大的计算分析功能以及开放的二次开发系统。 AN SYS软件是融热、电、磁、流体、结构、声学于一体的大型通用有限元分析软件。具有强大的求解器和前、后处理功能,为解决复杂、庞大的工程项目提供了一个强有力的工具。然而,正是由于AN2 SYS的通用性特点,使其对不同行业的专业性模块的分析不具有针对性,复杂的英文界面和繁琐的分析步骤都给从事有限元分析的技术人员造成了很大的障碍。另外,虽然AN SYS有较强大的前、后处理功能,但使用者必须具有较高的相关力学知识和丰富的分析经验,在几何建模简化和力学建模等前处理方面需要花费很多时间和精力。因此,基于这些不便因素,在熟练应用AN SYS软件的基础上,结合具体各行业的实践经验,利用AN SYS内部提供的二次开发工具,用户可在AN SYS系统中开发出具有中文界面的、特定功能的专用模块,可以有效地提高设计的效率和质量,充分体现了专业化、用户化、便 ①收稿日期:2004206228 基金项目:辽宁省教育厅科研资助项目(20032086)作者简介:吴鹏(19792),男,辽宁盘锦人,硕士生。

MAPGIS67教程(制图详细步骤讲解)

第1章概述与安装 1.1 概述 MAPGIS 是中国地质大学(武汉)开发的、通用的工具型地理信息系统软件。它是在享有盛誉的地图编辑出版系统MAPCAD 基础上发展起来的,可对空间数据进行采集,存储,检索,分析和图形表示的计算机系统。MAPGIS 包括了MAPCAD的全部基本制图功能,可以制作具有出版精度的十分复杂的地形图、地质图,同时它能对图形数据与各种专业数据进行一体化管理和空间分析查询,从而为多源地学信息的综合分析提供了一个理想的平台。 MAPGIS 地理信息系统适用于地质、矿产、地理、测绘、水利、石油、煤炭、铁道、交通、城建、规划及土地管理专业,在该系统的基础上目前已完成了城市综合管网系统、地籍管理系统、土地利用数据库管理系统、供水管网系统、煤气管道系统、城市规划系统、电力配网系统、通信管网及自动配线系统、环保与监测系统、警用电子地图系统、作战指挥系统、GPS 导航监控系统、旅游系统等一系列应用系统的开发。 1.2安装 1)系统要求: 硬件:CPU 486 以上、16M RAM、200M 硬盘、256 色以上显示器; 操作系统:Win9x、Win2000、WinNT 、WinXP或Win7系统; 输入设备:本单位主要使用的是GRAPHTEC—RS200Pro型扫描仪; 输出设备:本单位主要使用的是Canon—IPF700型出图打印机。 2) 硬件的安装: MAPGIS 硬件部分有加密狗,ISA 卡、PCI 卡三种,本单位主要为MAPGIS USB 软件狗,在确保机器BIOS 设置中USB 设备未被禁止的条件下,Windows 98 和Windows2000 自带的标准USB 驱动程序均可支持MAPGIS USB 软件狗工作。 3)软件的安装: MAPGIS 安装程序的安装过程为:找到MAPGIS 系统安装软件,双击SETUP 图标,系统自动安装软件,在WIN2000/NT/XP 下安装时,应先运行WINNT_DRV,提示成功后才可选择SETUP 开始MAPGIS 程序的安装; 对于MAPGIS6.1 及MAPGIS6.5,则无关键字和安装选择,但须根据实际需要选择安装组件。 从上述组件中选择实际运用中需要的选项,根据提示即可完成安装。

ANSYS的二次开发技术

ANSYS的二次开发技术 ANSYS 的二次开发技术 ANSYS 提供的二次开发工具有三个:参数化设计语言(ANSYS Parametric Design Language,APDL),用户界面设计语言(User Interface Design Language,UIDL)以及用户可编程特性(User Programmable Features,UPFs)。其中,前两种可归类为标准使用特性,后一种为非标准使用特性。 ANSYS 参数化设计语言(APDL)APDL 扩展了传统有限元分析范围之外的能力,提供了建立标准化零件库、序列化分析、设计修改、设计优化以及更高级 的数据分析处理能力,包括灵敏度研究等。ANSYS 用户可编程特性(UPFs)利 用UPFs,用户可以开发下列方面的功能程序:(1) 开发用户子程序实现从ANSYS 数据库中提取数据或将数据写入ANSYS 数据库。该种子程序可以编译 连接到ANSYS 中,此时ANSYS 提供了10 个数据库操作命令;如果作为外部 命令处理,可以在ANSYS 的任何模块中运行;(2) 利用ANSYS 提供的子程序 定义各种类型的载荷,其中包括BF 或BFE 载荷、压力载荷、对流载荷、热通 量和电荷密度等;(3) 利用ANSYS 提供的子程序定义各种材料特性,包括塑性、蠕变、膨胀、粘塑性、超弹、层单元失效准则等;(4) 利用ANSYS 提供 的子程序定义新单元和调整节点方向矩阵,ANSYS 最多可以有6 个独立的新 单元USER100-USER105;( 5) 利用ANSYS 提供的子程序修改或控制ANSYS 单元库中的单元;(6) 利用UEROP 创建用户优化程序,可以用自己的算法和 中断准则替换ANSYS 优化过程。(7) ANSYS 程序作为子程序在用户程序中调用,如用户自定义的优化算法。ANSYS 软件本身是通过FORTRAN 和C 语言 开发的。使用UPFs 进行二次开发,在安装ANSYS 的基础上,还需要Compaq Visual FORTRAN 和MS Visual C++的支持。

ArcGISEngine二次开发——提高篇

ArcGIS Engine二次开发 ——提高篇

1缩略图(鹰眼) 鹰眼功能是GIS的主要功能之一,当地图范围很大时,它可以很好的为用户指明当前地图的范围。在本小节中我们将学习如何制作这种鹰眼。 1.1添加控件 新建一个C#.Net项目,项目名称为OverView,将Form1的名字设置为MainForm,并添加ToolbarControl 、两个MapControl和LicenceControl等四个控件。布局如下图所示。左边的axMapControl1用于地图数据显示和操作,右边axMapControl2用于鹰眼显示。 图 1 界面布局 在ToolbarControl 加载添加数据按钮和地图浏览的功能按钮,如下图所示,并将ToolbarControl的伙伴控件设为axMapControl1。 图2添加按钮 1.2代码添加及解释 鹰眼用来显示主窗体当前视图范围在全景视图中的位置,在ArcMap中使用一个线框在鹰眼视图中标识。当主视图中的视图范围改变时,鹰眼中的线框随之改变,当拖动鹰眼视图中的红线框时,主视图中的视图范围也随之改变。 下面开始实现鹰眼功能,添加、、 三个引用。首先在axMapControl1中视图范围改变时鹰眼窗体要做出对应的响应,即绘制线框并显示,在OnExtentUpdated事件中添加代码如下: private void axMapControl1_OnExtentUpdated(object sender, e) { et项目,项目名称为Buffer,将Form1的名字设置为MainForm,并添加ToolbarControl 、MapControl、TOCControl、LicenceControl和Button等五个控件。并将ToolbarControl 、TOCControl的伙伴控件设为MapControl,Button控件的Name属性设定为btnBuffer,Text属性设定为“缓冲区分析”。控件布局效果如下图所示。 图3控件布局效果 在ToolbarControl 加载添加数据按钮和地图浏览的功能按钮,如下图所示。 图4添加按钮 1.2.1代码添加及解释 首先添加如下四个命名空间的引用。 在使用Geoprocessor工具实现缓冲区分析时,需要首先定义一个Geoprocessor对象,因为命名空间“也包含Geoprocessor类,为了避免混淆,我们使用命名空间来定义Geoprocessor,然后设置Geoprocessor中的环境参数,这里我们使用默认参数。然后定义一个操作类Buffer,并设置参数,生成缓冲区的参数包含原始图层,缓冲半径和输出路径,最后使用已定义的Geoprocessor对象执行即可。双击“生成缓存区”按钮,添加代码如下: private void btnBuffer_Click(object sender, EventArgs e) {

利用VB和MAPGIS基本控件做二次开发

利用VB和MAPGIS基本控件学做二次开发 摘要:本文介绍了利用VB进行MAPGIS二次开发的原理、方法和实现技术,为用户进行复杂的应用开发提供了技术基础。 关键词:VB,MAPGIS,二次开发 微软公司的Visual Basic是一个简单易学的可视化开发工具,MAPGIS提供了很多功能强大的图形和属性管理控件,并为二次开发提供了许多完备的功能接口。利用VB和MAPGIS 基本控件可以做一些基本的开发,满足用户的一些特殊需要。本文将以区文件操作开发为例,讲解二次开发的原理、方法、要点和实现技术。 第一步:首先建立VB开发环境。 安装MAPGIS SDK软件到MAPGIS安装路径下。 添加声明模块vbW60_Area.bas,该模块包含MAPGIS基本参数及结构定义、消息与版本定义等。添加的方法是:在VB程序中点取"Project"菜单下的"Add Module",添加vbW60_Area.bas文件,该文件在MAPGIS安装程序的Basic子目录下。 添加参照引用文件。这些文件是MAPGIS控件功能实现的外部参照。添加的方法是:在VB程序中点取"Project"菜单下的“References”,将MapGisBasCtl1 1.0 Type Library、MapGisBasCtl2 1.0 Type Library、MapGisBasCom 1.0 Type Library、MapGisBasCtl 1.0 Type Library四个参照文件打钩,如下图所示。 设置可执行文件输出目录。生成的可执行文件必须放在与MAPGIS安装目录的动态库和控件相同的目录中才能执行。设置的方法是:点取"File"菜单下的"Make *.exe..",选择

ansys二次开发及实例

ansys二次开发教程+实例 第3章ANSYS基于VC++6.0的二次开发与相互作用分析在ANSYS中的实现 3.1 概述 ANSYS是一套功能十分强大的有限元分析软件,能实现多场及多场耦合分析;是实现前后处理、求解及多场分析统一数据库的 一体化大型FEA软件;支持异种、异构平台的网络浮动,在异种、异构平台上用户界面统一、数据文件全部兼容,强大的并行计算功能 支持分布式并行及共享内存式并行。该软件具有如下特点: (1) 完备的前处理功能 ANSYS不仅提供了强大的实体建模及网格划分工具,可以方便地构造数学模型,而且还专门设有用户所熟悉的一些大型通用有 限元软件的数据接口(如MSC/NSSTRAN,ALGOR,ABAQUS等),并允许从这些程序中读取有限元模型数据,甚至材料特性和边 界条件,完成ANSYS中的初步建模工作。此外,ANSYS还具有近200种单元类型,这些丰富的单元特性能使用户方便而准确地构建出 反映实际结构的仿真计算模型。 (2) 强大的求解器 ANSYS提供了对各种物理场量的分析,是目前唯一能融结构、热、电磁、流体、声学等为一体的有限元软件。除了常规的线性、 非线性结构静力、动力分析外,还可以解决高度非线性结构的动力分析、结构非线性及非线性屈曲分析。提供的多种求解器分别适用于 不同的问题及不同的硬件配置。 (3) 方便的后处理器 ANSYS的后处理分为通用后处理模块(POST1)和时间历程后处理模块(POST26)两部分。后处理结果可能包括位移、温度、应力、应变、速度以及热流等,输出形式可以有图形显示和数据列表两种。 (4) 多种实用的二次开发工具 ANSYS除了具有较为完善的分析功能外,同时还为用户进行二次开发提供了多种实用工具。如宏(Marco)、参数设计语言(APDL)、用户界面设计语言(UIDL)及用户编程特性(UPFs),其中APDL(ANSYS Parametric Design Language)是一种非常类似于Fortran77的参数化设计解释性语言,其核心内容为宏、参数、循环命令和条件语句,可以通过建立参数化模型来自动完成一些通用性强的任务;UIDL(User Interf ace Design Language)是ANSYS为用户提供专门进行程序界面设计的语言,允许用户改变ANSYS的图形用户界面(GUI)中的一些组项,提供了一种允许用户灵活使用、按个人喜好来组织设计ANSYS图形用户界面的强有力工具;UPFs(User Programmable Features)提供了一套Fortran77函数和例程以扩展或修改程序的功能,该项技术充分显示了ANSYS的开放体系,用户 不仅可以采用它将ANSYS程序剪裁成符合自己所需的任何组织形式(如可以定义一种新的材料,一个新的单元或者给出一种新的屈服 准则),而且还可以编写自己的优化算法,通过将整个ANSYS作为一个子程序调用的方式实现。 鉴于上述特点,近几年来,ANSYS软件在国内外工程建设和科学研究中得到了广泛的应用。但这些应用大多局限于直接运用ANSYS软件进行实际工程分析,对利用ANSYS提供的二次开发工具进行有限元软件设计却很少涉及。本文首次利用ANSYS软件的二次开发功能,以VC++6.0为工具,运用APDL语言,对ANSYS进行二次开发,编制框筒结构-桩筏基础-土相互作用体系与地震反应分析程序。 3.2 程序设计目标 针对某一实际工程问题,ANSYS所提供的APDL语言可对ANSYS软件进行封装。APDL语言即ANSYS软件提供的参数化设计 语言,它的全称是ANSYS Parametric Design Language。使用APD L语言可以更加有效地进行分析计算,可以轻松地进行自动化工作(循环、分支、宏等结构),而且,它是一种高效的参数化建模手段。使用APDL语言进行封装的系统可以只要求操作人员输入前处理 参数,然后自动运行ANSYS进行求解。但完全用APDL编写的宏还存在弱点。比如用APDL语言较难控制程序的进程,虽然它提供了 循环语句和条件判断语句,但总的来说还是难以用来编写结构清晰的程序。它虽然提供了参数的界面输入,但功能还不是太强,交互性 不够流畅。针对这种情况,本文用VC++6.0开发框筒结构-桩筏基础-土相互作用有限元分析程序(简称LW S程序)。

Arcgis二次开发软件安装教程

Arcgis二次开发软件安装教程 1.环境配置 Win7 32位系统,Arcgis for Desktop 10.2,jdk-8u101-windows-i586,eclipse-jee-mars-2-win32,ArcGIS_Engine_DevKit_Windows_102_134944 64位win7系统可参考文档:https://www.doczj.com/doc/ad14093366.html,/shugui/p/3795803.html 2.安装过程 1)安装Arcgis for Desktop 10.2 下载地址 https://https://www.doczj.com/doc/ad14093366.html,/share/link?shareid=4262105946&uk=1913532136#path=%252 F 安装教程:https://www.doczj.com/doc/ad14093366.html,/article/e73e26c0cb5c1324adb6a791.html 2)安装jdk 下载地址 https://www.doczj.com/doc/ad14093366.html,/technetwork/java/javase/downloads/jdk8-downloads-2133151. html

具体安装过程参考 https://www.doczj.com/doc/ad14093366.html,/article/6dad5075d1dc40a123e36ea3.html 3)安装Eclipse 下载地址:https://https://www.doczj.com/doc/ad14093366.html,/downloads/packages/release/Mars/2 解压后即可使用 安装教程参考:https://www.doczj.com/doc/ad14093366.html,/article/d7130635194f1513fcf47557.html 4) 安装windowbuilder插件 找到对应版本的windowbuilder,本教程使用4.5版本 https://www.doczj.com/doc/ad14093366.html,/windowbuilder/download.php eclipse在线更新 打开eclipse-->help-->Install New Software-->Add 在location中粘贴刚才复制的链接,OK,等待加载插件信息

mapgis新手教程3

山西地信数码科技公司
MAPGIS 教程
8、系统弹出(如下图)对话框。在此对话框中选择我们新建好的空白文件夹。
此文件夹即为 新建好的空白 文件夹
9、选择要裁剪的文件。这儿有两种情况: ①如果(左面窗口中)所有的文件都需要进行裁剪时,我们直接点击“添加全部”即可。 ②如果(左面窗口中)只有一部分文件需裁剪时,我们要将所需裁剪的文件全部选中(即将 其选为蓝色) 。然后点击“添加”→选择全部→设置“参数” (参数的设置参照下图即可)→ →单击“参数应用” (此时左下角的窗口中会显示出我们将要进行裁剪的图形文件)→单击 “装入裁剪框” (即我们在“输入编辑”中新建好的区文件)→单击“开始裁剪”→在右下 角窗口中的任意位置单击右键,在弹出的下拉菜单中选择“复位窗口” 。这时裁剪后新的图 形文件就显示在此窗口中→退出。
5

山西地信数码科技公司
MAPGIS 教程
此处为裁剪 范围。 此图为裁剪 后的新文件。
10、最后,我们可以在“输入编辑”中打开裁剪后的文件。 (如下图)
6

山西地信数码科技公司
MAPGIS 教程
本次操作结束,如发现有不清或不对的地方请与我们联系(sxmapgis@https://www.doczj.com/doc/ad14093366.html,) ,我们 会及时改正,谢谢! 这里只是讲一些快速的入门法, 如果想更深入的了解 MAPGIS 知识, 请看 MAPGIS 相关书 籍。
7

山西地信数码科技公司
MAPGIS 教程
MAPGIS 打

(作者:sxmapgis) 功能:打印出图. 当一张图绘制完后,我们需要把它打印出来,具体步骤如下:
如果在准备出图的过程中,如果还要进行一些修改,在菜单栏上单击“返回编辑” 。
1

附代码基于C 的ANSYS二次开发

ansys二次开发 1概述 ANSYS是一套功能十分强大的有限元分析软件,能实现多场及多场耦合分析;是实现前后处理、求解及多场分析统一数据库的一体化大型FEA软件;支持异种、异构平台的网络浮动,在异种、异构平台上用户界面统一、数据文件全部兼容,强大的并行计算功能支持分布式并行及共享内存式并行。该软件具有如下特点:(1)完备的前处理功能 ANSYS不仅提供了强大的实体建模及网格划分工具,可以方便地构造数学模型,而且还专门设有用户所熟悉的一些大型通用有限元软件的数据接口(如MSC/NSSTRAN,ALGOR,ABAQUS等),并允许从这些程序中读取有限元模型数据,甚至材料特性和边界条件,完成ANSYS中的初步建模工作。此外,ANSYS还具有近200种单元类型,这些丰富的单元特性能使用户方便而准确地构建出反映实际结构的仿真计算模型。 (2)强大的求解器 ANSYS提供了对各种物理场量的分析,是目前唯一能融结构、热、电磁、流体、声学等为一体的有限元软件。除了常规的线性、非线性结构静力、动力分析外,还可以解决高度非线性结构的动力分析、结构非线性及非线性屈曲分析。提供的多种求解器分别适用于不同的问题及不同的硬件配置。 (3)方便的后处理器 ANSYS的后处理分为通用后处理模块(POST1)和时间历程后处理模块(POST26)两部分。后处理结果可能包括位移、温度、应力、应变、速度以及热流等,输出形式可以有图形显示和数据列表两种。 (4)多种实用的二次开发工具 ANSYS除了具有较为完善的分析功能外,同时还为用户进行二次开发提供了多种实用工具。如宏(Marco)、参数设计语言(APDL)、用户界面设计语言(UIDL)及用户编程特性(UPFs),其中APDL(ANSYS Parametric Design Language)是一种非常类似于Fortran77的参数化设计解释性语言,其核心内容为宏、参数、循环命令和条件语句,可以通过建立参数化模型来自动完成一些通用性强的任务;UIDL(User Interface Design Language)是ANSYS为用户提供专门进行程序界面设计的语言,允许用户改变ANSYS的图形用户界面(GUI)中的一些组项,提供了一种允许用户灵活使用、按个人喜好来组织设计ANSYS图形用户界面的强有力工具;UPFs(User Programmable Features)提供了一套Fortran77函数和例程以扩展或修改程序的功能,该项技术充分显示了ANSYS的开放体系,用户不仅可以采用它将ANSYS程序剪裁成符合自己所需的任何组织形式(如可以定义一种新的材料,一个新的单元或者给出一种新的屈服准则),而且还可以编写自己的优化算法,通过将整个ANSYS作为一个子程序调用的方式实现。 鉴于上述特点,近几年来,ANSYS软件在国内外工程建设和科学研究中得到了广泛的应用。但这些应用大多局限于直接运用ANSYS软件进行实际工程分析,对利用ANSYS提供的二次开发工具进行有限元软件设计却很少涉及。本文首次利用ANSYS软件的二次开发功能,以VC++6.0为工具,运用APDL语言,对ANSYS进行二次开发,编制框筒结构-桩筏基础-土相互作用体系与地震反应分析程序。2程序设计目标 针对某一实际工程问题,ANSYS所提供的APDL语言可对ANSYS软件进行封装。APDL语言即ANSYS软件提供的参数化设计语言,它的全称是ANSYS Parametric

ArcGIS_Engine二次开发——基础篇

ArcGIS_Engine二次开发——基础篇 ArcGIS Engine二次开发 ——基础篇

1ArcGIS Engine二次开发——基础篇 1.1第一个简单的A rcGIS Engine地图显示程序 这个例子将引导您创建第一个简单的地图显示程序,并添加基本的缩放和漫游功能。如果您之前没有接触过ArcGIS Engine的开发,那么这个例子是您迈入ArcGIS Engine二次开发大门的极好例子,将从零开始引导您一步一步完成任务。 1.1.1创建一个新的工程 首先打开Microsoft Visual Studio 2005,点击菜单栏中的“文件”—>“新建”—>“项目”,在弹出的对话框中选择新建一个Visual C#的Windows应用程序,之后更改项目名称为“地图浏览”,更改文件的路径为个人实习文件夹,点击“确定”即可。 图1新建项目对话框 选中项目“地图浏览”中的窗体“Form1”,修改其Name属性为“MainForm”,Text 属性为“地图浏览”,

图2窗体命名 1.1.2添加控件及引用 点击编译器最左侧的“工具箱”(不存在时可通过“视图”“工具箱”打开),在弹出的选择项中找到“ArcGIS Windows Forms”项,单击其中的MapControl,之后在Form1的空白处单击鼠标左键不放并拖拽鼠标,直到调整MapControl到合适的大小再松开鼠标(您也可以直接在工具箱中双击MapControl,该控件则会自动加入到Form1中)。用同样的方法,再将LicenseControl添加到Form1中。 图 3 打开工具箱

图4工具箱 如果您在工具箱中找不到MapControl,则请依次尝试以下两种解决方案。首先单击工具栏,待工具箱弹出之后,在工具箱的任意位置上单击鼠标右键,从弹出菜单中选择“重置工具箱”。如果这一步操作之后仍然无法看到MapControl,则在工具箱的任意位置上单击鼠标右键,找到“常规”选项卡,然后在“常规”选项卡上单击鼠标右键,在弹出菜单中单击“选择项(I)…”,在弹出的对话框中选择“.NET Framework组件”,找到“LicenseControl”和“MapControl”,将这两项前的复选框打上勾,最后点击确定即可(如果在“.NET Framework 组件”这个面板中找不到这两项,则选择“COM 组件”面板,在“ESRI LicenseControl”和“ESRI MapControl”前面打勾)。

(推荐下载)MAPGIS67教程(制图详细步骤讲解)

(完整word版)MAPGIS67教程(制图详细步骤讲解) 编辑整理: 尊敬的读者朋友们: 这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整word 版)MAPGIS67教程(制图详细步骤讲解))的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。 本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整word版)MAPGIS67教程(制图详细步骤讲解)的全部内容。

第1章概述与安装 1.1 概述 MAPGIS 是中国地质大学(武汉)开发的、通用的工具型地理信息系统软件。它是在享有盛誉的地图编辑出版系统 MAPCAD 基础上发展起来的,可对空间数据进行采集,存储,检索,分析和图形表示的计算机系统。MAPGIS 包括了 MAPCAD的全部基本制图功能,可以制作具有出版精度的十分复杂的地形图、地质图,同时它能对图形数据与各种专业数据进行一体化管理和空间分析查询,从而为多源地学信息的综合分析提供了一个理想的平台。 MAPGIS 地理信息系统适用于地质、矿产、地理、测绘、水利、石油、煤炭、铁道、交通、城建、规划及土地管理专业,在该系统的基础上目前已完成了城市综合管网系统、地籍管理系统、土地利用数据库管理系统、供水管网系统、煤气管道系统、城市规划系统、电力配网系统、通信管网及自动配线系统、环保与监测系统、警用电子地图系统、作战指挥系统、GPS 导航监控系统、旅游系统等一系列应用系统的开发。 1。2安装 1)系统要求: 硬件:CPU 486 以上、16M RAM、200M 硬盘、256 色以上显示器; 操作系统:Win9x、Win2000、WinNT 、WinXP或Win7系统; 输入设备:本单位主要使用的是GRAPHTEC—RS200Pro型扫描仪; 输出设备:本单位主要使用的是Canon—IPF700型出图打印机。 2)硬件的安装: MAPGIS 硬件部分有加密狗,ISA 卡、PCI 卡三种,本单位主要为 MAPGIS USB 软件狗,在确保机器 BIOS 设置中 USB 设备未被禁止的条件下,Windows 98 和 Windows2000 自带的标准 USB 驱动程序均可支持 MAPGIS USB 软件狗工作。 3)软件的安装: MAPGIS 安装程序的安装过程为:找到 MAPGIS 系统安装软件,双击SETUP 图标,系统自动安装软件,在 WIN2000/NT/XP 下安装时,应先运行 WINNT_DRV,提示成功后才可选择 SETUP 开始 MAPGIS 程序的安装; 对于 MAPGIS6。1 及 MAPGIS6。5,则无关键字和安装选择,但须根据实际需要选择安装组件。 从上述组件中选择实际运用中需要的选项,根据提示即可完成安装。

VS2013中ArcGIS二次开发部分问题问题解决方法

VS2013中ArcGIS二次开发部分问题问题解决方法 1、VS2013中新建项目时没有ArcGIS模板解决办法: 安装ArcGIS10.x会自动生成C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\ArcGIS文件夹 和C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\CSharp\ArcGIS文件夹

打开vs2013安装目录: 将上面所说的两个ArcGIS文件夹复制到vs2013安装目录下对应的ItemTemplates\CSharp文件夹和ProjectTemplates\CSharp文件夹, 继续返回vs2013安装目录,找到devenv.exe文件,右击该文件选择属性----兼容性---以管理员身份运行此程序。

在开始菜单栏的所有程序中找到下图文件夹,打开Visual StudioTools, 如下图所示:以管理员身份运行VS2013开发人员命令提示,在打开的命令窗口输入devenv.exe /InstallVSTemplates后回车即可

2、vs2013中工具箱中没有ArcGIS控件解决方法: 在工具箱中右键添加选项卡,并起名为ArcGIS, 在ArcGIS下拉后的空白处右击选择项,在弹出的窗口中点击浏览 找到安装ArcObjects SDK for https://www.doczj.com/doc/ad14093366.html, Framework时的目录DeveloperKit10.2,打开该目录下的DotNet文件夹,选中ESRI.ArcGIS.AxControls.dll文件,

mapgis二次开发教程

mapgis二次开发教程 默认分类 2009-09-08 10:18:14 阅读898 评论1 字号:大中小订阅 目前MAPGIS二次开发库主要以API函数、MFC(Microsof t Foundation Class)类库、Com组件、Activ eX 控件四种方式提供。开发库被封装在若干动态链接库(DLL)中。 API函数在使用方法上与Windows的API函数完全一样,因此是独立于开发工具的。无论您使用VC++、VB还是BC++、Dephi…,您在这些工具中如何调用Windows的API函数,您就可以怎么调用这些二次开发函数。 MAPGIS类库是为基于MFC类库的C++开发者提供的多个可重用基类,它将应用程序所需的常见基本功能作了封装,使用便利,改动灵活。开发者只需从类库派生即可使自己的程序获得从窗口显示控制到图形查询编辑的各项功能。 MAPGIS COM组件是MAPGIS新一代体系结构的表现,功能更加强大,使用更加便利。具有二次开发方便、易于集成、无限 扩展等特点。支持多种开发软件,包括Visual C++、Visual Basic、Delphi、script、InterDev、Power Builder等,开发者可以多层次的 访问MAPGIS组件的数据层、功能层和界面层。 Activ eX 控件是MAPGIS完成组件化改造的成果之一,它们使得二次开发更为快捷便利,代码的可复用性更高。 上述各类开发接口提供了从最基本数据单元的读取、保存、更新和维护到MAPGIS地图库的建立和漫游,以及空间分析,图象 处理等一系列功能。其中,API函数是基础,使用上最灵活,但技巧性要求也最高。所以本书大量篇幅用于介绍C++ API函数。MAPGIS将不断丰富完善各类二次开发接口,以多种开发手段满足不同层次、不同应用的需求。这些函数所 在的C++头文件表4-1所示:

关于ansys与VC++Fortran程序的接口资料! [精华]

将ANSYS作为子程序调用 对于优化或参数化设计,可以在VC或FORTRAN中将ANSYS作为子程序调用。具体调用方法如下: 1.在VC中调用ANSYS ::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL); 2.在FORTRAN中调用ANSYS LOGICAL(4) result RESULT=SYSTEMQQ('d:\ANSYS57\BIN\INTEL\ANSYS57 -b -p ansys_product_feature -i input_file -o output_file') 3.说明 1和2中,input_file为用APDL语言编写的ANSYS输入文件。 ansys_product_feature为你的ANSYS产品特征代码。 需要注意的是,在VC中调用ANSYS时,需要加一条判断语句,以确定ANSYS 已经执行完毕。 在ANSYS中当然也可以以VC或FORTRAN作为子程序调用。可以参看有关ANSYS二次开发方面的资料。 这个方法应该是与系统无关的。 在FORTRAN中不需要判断,FORTRAN会等ANSYS执行完毕才继续执行下一条语句。 在VC中,我没有找到与FORTRAN类似的函数,只好加一条循环判断语句。 如果谁能找着这样的函数,请告诉我,谢谢! 判断方法很简单,只需判断错误文件file.err是否可写就可以了。 因为当ANSYS在运行时,file.err是不可写的,只有当它运行完毕,此文件才可写。 好贴,请教如何在VB中调用ansys? 这是我早期的帖子,请参考: https://www.doczj.com/doc/ad14093366.html,/dispbb ... ID=2923&ID=2923 在第二页中已经对VC调用ANSYS的方法进行了更新,如下所示: VC调用ANSYS的示例程序。 //Test.cpp #include "stdio.h" #include"process.h" void main() { int result; printf("Solving..."); result=system("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansysul -i test.txt -o test.out"); //不用::WinExec,就用不着等待语句,可以实现用FORTRAN调用一样的效果。 printf("Solution finished..."); }

ArcGIS二次开发课程设计

地理信息系统GIS二次开发程序设计 实验报告 班级:10级测绘1班学号: 姓名: 指导教师:

面向接口编程 一、实验目的: 1.理解接口编程、面向对象编程的思想,两者的区别,以及各自的优缺点; 2.掌握AE接口实现图层加载的方法: IworkspaceFactory-->Workspace->IfeatureWorkSpace->IFeatrueClass->IFeature(); 3.理解并掌握使用UI进行属性查询和空间查询; 二.实验内容: 1. 利用IWorkSpace接口在Map中增加一个GeoDatabase图层; 2. 利用Imap的SelectBy*实现简单选择; 3. 利用IQueryFilter实现简单空间查询。(未实现) 三、实验过程 1.接口、面向接口编程基本知识点。 (1)接口是一组规则的集合,它规定了实现本接口的类或接口必须拥有的一组规则;是在一定粒度视图上同类事物的抽象表示。接口从更深层次的理解,应是定义(规范,约束)与实现(名实分离的原则)的分离。接口应有两类:第一类是对一个体的抽象,它可对应为一个抽象体(abstract class);第二类是对一个体某一方面的抽象,即形成一个抽象面(interface); 一个体有可能有多个抽象面。 (2)面向对象是指,我们考虑问题时,以对象为单位,考虑它的属性及方法;是与“面向过程”即“我们考虑问题时,以一个具体的流程(事务过程)为单位,考虑它的实现”相对应的。 面向对象实现了对象属性与行为的分离,对象之间通过消息进行通信;具有同一属性和行为的对象被抽象成类,每一个类是相同或相似属性和方法的封装;类与类之间具有继承和派生关系。 (3)面向接口与面向对象的区别: 接口设计与非接口设计是针对复用技术而言的,与面向对象(过程)是针对编程开发的对象而言的,不是同一感念。 interface关键字用来声明一个接口,它可以产生一个完全抽象的类,并且不提供任何具体实现。 2.GeoDatabase的数据加载: (1)理解 Workspace是一个容器,包含了空间和非空间数据集,如feature class,raster dataset,table。提供了一系列创建和操作数据集的方法。 FeatureClass 是空间事物的顶级类,类似与C#中的Object类,提供了一系列属性和方法。在同一个FeatureClass中的Feature具有相同的属性字段。 FeatureLayer是一个基于矢量数据的图层,典型的数据包括Geodatabase、coverage和shapefile等,FeatureLayer可以直接在MapControl中显示。

新手学习mapgis教程

------------------- 时磊5说----- - ---- ------- 新手学习mapgis教程 一、几个术语 图层:按照一定的需要或标准把某些相关物体组合在一起。可以把图层理解为一张透明薄膜, 每一层的图元在同一薄膜上,如水系力图层、铁路图层、地质界限图层、断层图层等。图层的分层有利于地图图元的管理,提高成图速度。 栅格图:即扫描的图像。 矢量图:即进行了数字化的图像,图中的每一个点都有相对的X和Y座标。 图元:图面上表示空间信息特征的基本单位,分为点、线(孤段)、多边形等三种类型。 点元:点图元的简称,有时称点。指其位置只有一组X和Y座标来控制。 它包括字符串(注释)、子图(专用符号)等。所有点保存在点文件中(*.wt)结点:指某线或孤段的端点或数条线或孤段的交点。 结点平差:使几条线或孤段成为共用一个结点的过程 线图元:地图中线状物的总称。如划线、省界、国界、地质界线、断层、水系、公路等。所有线图元都保存在线文件中(*.wl) 区图元(面图元):由线或孤段组的封闭区域,可以以颜色和花纹图案填充。如湖泊、地层、岩体分布区等。所有区图元都保存在区文件中(*.wp )。 工程:对一系列的点、线、面文件进行管理的描述性文件。 二、MAPGIS几种主要文件类型及后缀 .wp区(面)文件.pnt控制点文件 .wl线文件 .wt点文件 ?tif栅格文件 .rbm光栅求反后文件 .mpj工程文件 ?cln图例板文件 点文件(.wt):包括文字注记、符号等。即在输入时,文字和符号都存在点 文件中。在机助制图时,文字注记称为注释(如各种标注等),符号称为子图(矿 点符号,泉符号等)。 线文件(.wl):是由境界线、河流、航空线、海岸线等线状地物组成的图元。 面文件(.wp):将各个行政区进行普染色后,就得到了区文件。在理论上,区是封闭的线组成的区域,因此区是基于线生成的。 工程(.mpj):对一系列的点、线、面文件进行管理的描述性文件。其主要记录了各个文件的信息,如存放地、可编辑性等。(如何建立工程,见以后) 图形处理一输入编辑 一、输入编辑步聚 主要步骤为: 1将图件进件进行扫描,成灰度、或彩色、或二值。 2、建立相应的工作目录,即建立自已的工作文件夹。女口mapgis学习 3、将扫描的图像拷入到工作文件夹中, 4、将系统库(相当于\mapgis65\slib文件夹)拷到工作文件夹中。

ANSYS二次开发

ANSYS二次开发手册 UIDL解析 APDL解析

目录 第二章解析UIDL篇 (1) 2.1结识UIDL (1) 2.2看看UIDL的模样 (2) 2.3 Ansys调用UIDL的过程 (7) 第三章UIDL实例解析一 (10) 3.1问题描述: (10) 3.2环境准备: (10) 3.3添加菜单: (12) 3.4结束语 (16) 第四章UIDL实例解析二 (17) 4.1问题描述: (17) 4.2环境准备及构建对话框: (18) 4.3参数提取杂谈 (21) 4.4结束语 (23) 附录 (23) 第五章UIDL实例解析三 (27) 5.1问题描述 (27) 5.2环境准备及构建联机帮助: (28)

5.3几点说明 (34) 5.4 结束语 (35) 第六章解析APDL (36) 6.1 熟悉新朋友—APDL (36) 6.2 二次开发工具之间的比较 (36) 6.3 结束语 (37) 第七章APDL综合实例 (38) 7.1 问题说明 (38) 7.2 解题思想 (39) 7.3 构建步骤 (40) 7.4 几点说明 (47) 7.5 结束语 (48)

第二章解析UIDL篇 2.1结识UIDL UIDL是什么?Ansys二次开放语言的一种。 OK,那么它能带给我们什么?很多很多,如果你想让你在Ansys中制作的用户界面具有专业水准的话,请来结识一下我们的UIDL把。 ●全称: UIDL的全名是User Interface Design Language,是Ansys 中二次开发工具方面的三大金刚之一。GUI方面几乎全部的二次开发 功能都将由它运筹帷幄。 ●功用: ?组织我们自己强大的菜单系统。想象一下我们在Ansys中也能轻 松做出可以和VC,VB之类主流GUI开发工具媲美的菜单响应效 果,Ansys的世界将是多么的亲切、友好。 ?构建功能繁复的对话框。Ansys中美观易用的ContactWizard对 话框级联界面一定让你印象很深把,有了它,即使是最菜鸟的门 外汉也能构建一流的工程算例,Ansys5.7中的DesignSpace应 该就是无可争辩的例证之一。虽然从UNIX内核上讲(Windows

相关主题
文本预览
相关文档 最新文档