最近在搞arcengine 二次开发,遇到了好多问题,也通过网上查资料试着慢慢解决了,把解决的步骤记录下来,有需要帮助的可以看一下,也欢迎各位来批评指正. 想给自己的map application在图层上添加右键菜单,谷歌了一下,找到了解决的方法,原文的地址edndoc.esri.com/arcobjects/9.2/NET/1ED14BF2-A0E3-4e56-A70D-B9A7F7EC7880.htm.然后我根据这个添加了自己的右键菜单,又有一些改动. 效果如图所示(有点简陋),仅仅是简单的…
/* * 实习课上讲进阶功能所用文档,因为赶时间从网上抄抄改改,凑合能用,记录一下以备个人后用. * * ------------------------------------------------------------------- * * 使用前提:已搭建好AE的GIS基本框架,包括TOC.mapcontrol.toolbar拖控件,mxd.shp文件载入显示,查看图层属性表等 * * --------------------------------------------------…
开发中运行mysql脚本,发现提示mysql提示Column count doesn't match value count at row 1错误, 调试后发现是由于写的SQL语句里列的数目和后面的值的数目不一致, 比如insert into 表名 (field1,field2,field3) values('a','b')这样前面的是三列,后面却只有二个值,这就会出现这个错误. 或者insert into table select * from table1,但是table和table1字段不…
右键菜单,在二次开发中很实用,以前没用过,最近通过一本书了解到,一直想找这么一个控件来用. 一般的控件,将contextMenuStrip控件拖到所依托的控件上,然后输入自己想要的几个功能.  在所依托的控件的属性里有个"ContextMenuStrip",选择ContextMenuStripX,这样就算是绑定了. 但是TOCControl控件绑定ContextMenuStrip就不同了,如果还像上面那样绑定就不管用了,绑定的过程没这么简单,要用代码来实现,首先要声明一个全局变量 pr…
CAD二次开发中创建了一个浮动面板,想让它创建出来后以浮动状态显示, 但是DockSides.None设置完后,面板还是不浮动.搞了很久,最后原来是 需要先设置Visible,再设置DockSides,这样就好了. ps = new PaletteSet("PSCollectPart"); ps.Style = PaletteSetStyles.NameEditable | PaletteSetStyles.ShowPropertiesMenu | PaletteSetStyles.S…
前篇<Nodejs学习笔记(一)——初识Nodejs>主要介绍了在搭建node环境过程中遇到的小问题以及搭建Eclipse开发Node环境的前提步骤.本篇主要介绍如何在Eclipse中运行并调试nodejs程序. 1.安装Express.Express是目前最稳定.使用最广泛,而且是Node.js官 方推荐的唯一一个 Web 开发框架. 注意:使用npm install -g express以及cnpm install -g express后,虽然看似安装成功,但是输入express -V时,…
ArcEngine搭载C#进行GIS的二次开发,关于目标显示的问题,由于考虑到设置定时器刷新目标位置和方向,因此在显示图层上采用的是动态图层DynamicLayer,主要用到的dll文件是ESRI.ArcGIS.ADF.BaseClasses,通过继承BaseDynamicLayer设计一个自己的动态图层基类,这样在加载其他图层时可以很方便的调用.先上基类的代码 using ESRI.ArcGIS.ADF.BaseClasses; using ESRI.ArcGIS.Display; using…
在创建FeatureClass之后,需要为FeatureClass添加Features,在为Feature的字段赋值时,代码大致如下: 在这里赋值的时候,出现了一个错误: The operation was attempted on an empty geometry. 因为有一个字段类型为esriFieldTypeOID,它是类似与SQL Server或者其他关系型数据库中的主键,是会自动增加的,因此这里判断如果字段类型是esriFieldTypeOID的话,就跳过,不为其赋值. 最终成功为F…
0 引言 由于项目中涉及到Pro/E的二次开发技术,因此在边用边学的情况下,解决了不少问题,也积攒了不少问题.其中有些问题可能不是调个函数就能搞定的,得了解CAD底层的东西. 1 问题描述 (1)CAD模型的数字化定义问题 为了在设计阶段完整表达设计意图,同时形成以三维数据源为唯一核心数据的设计规范,指导产品的制造.装配.测量与质量评定.整机调试与验收等,需要形成一整套CAD模型的数字化定义规范. (2)尺寸关联几何的自动提取问题 在(1)的基础上,为了实现数模比对的零件尺寸自动化测量,需要向系…
做二次开发的时候,想要得到Point shapfile的坐标和相应的属性,也就是Point 的(x,y)和某个属性,在网上查了一些资料,做总结如下 首先,你要确定自己要操作的图层,一般来说,得到当前操作的图层代码如下 //m_hookHelper.FocusMap.LayerCount,m_hookHelper是那个钩子,做二次开发都知道,我这个是 //搞的ICommand for (int i = 0; i < m_hookHelper.FocusMap.LayerCount; i++) {…
今天的一个项目总用到了AE的开发组件,也就是ESRI公司提供的一系列的开发包(组件)都是以dll(动态链接库的形式)然后今天在调试的时候却出现了“正试图在 OS 加载程序锁内执行托管代码.不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起.”这个异常.但是我的执行的时候却没有这个异常,然后就在网上找了一下资料. .NET2.0中增加了42种非常强大的调试助手,MDA.Loaderlock 是其中之一.Loaderlock检测在一个拥有操作系统loader loc…
第一部分:运行环境的配置 1.下载压缩包,解压即可 2.配置系统变量JAVA_HOME为jdk的安装路径 3.如有需要修改端口号,比如8080已被占用的时候,可以将其改为9080等 apache-tomcat-7.0.59\conf路径下的server.xml文件中 4.双击startup.bat如果还是正常启动Tomcat 需要配置系统变量CATALINA_HOME为Tomcat的安装路径 5.终于可以正常启动 浏览器输入localhost:8080,看到该页面即可 第二部分:开发环境的配置…
一:web应用的映射问题 通常我们从别人那里拷贝来的代码,自己会修改应用的名称,但是web映射的访问路径并没有修改,还是原来的映射. 解决方法: 工程右键--properties--myeclipse--web,修改webroot即可 二:web.xml配置文件 web.xml中的配置文件信息如下: 三:同一个servlet类可以映射到多个url地址上 1: *.do  所有以.do为后缀的请求,都匹配到对应的servlet类上去. 2:/*    匹配所有的请求 注意:请求地址匹配url-pa…
引用文件:Bentley.Interop.MicroStationDGN 本人开发过程中遇到问题: 创建多个线段及弧线,通过自动创建复杂链获得,沿曲线构造拉伸实体的Path参数,拉伸曲线路径首尾特别近(类似手镯), 使用沿曲线构造拉伸实体的方法生成3000个构造拉伸实体,但是完成2000多个,抛出未知错误. 解决过程: 问题定位到,沿曲线构造拉伸实体异常,检测发现拉伸曲线路径有问题,是复杂连元素但是无法完成构造拉伸实体, 在软件中经过建模测试发现,自动创建复杂链的方法需要设置容差,开发中有以下两…
一.高效的代码编辑技能 1.复制和复制历史 Ctrl+C:复制,点中你要复制的行,,完成复制 Ctrl+Shift+V:复制历史, 查看最近复制的五条历史记录 Ctrl+D:直接复制出光标所在行 Alt+鼠标左键并拖动:纵向选择多行文本 2.粘贴和不带格式粘贴 Ctrl+V: IDE提供自动安排好格式的粘贴 鼠标右键,选择不带格式粘贴:粘过来的内容保持原格式 3.格式化代码 Ctrl+Alt+L:对选中文字格式化 4.上下移动一行,或多行 Alt+Shift+上/下 :鼠标点中要移动的行,进行操…
今天在在phpcms开发留言板用到验证码,提交数据,后台无法$_SESSION['code']无法获取验证码值,也无法打印var_dump($_SESSION)值,我们只需要在文件头部添加如下代码: 处理方法:在类文件添加代码如下 defined('IN_PHPCMS') or exit('No permission resources.'); $session_storage = 'session_'.pc_base::load_config('system','session_storage…
//featureClass是自己获取的featureClass,也可是sde中获取的. public void FilterAndZoomToLayer(IFeatureClass featureClass) { IFeatureLayer featureLayer = new FeatureLayerClass(); featureLayer.FeatureClass = featureClass; IFeatureLayerDefinition featureLayerDefinition…
使用Spatial可以快速选择指定范围内的对象 例如下面的代码可以选择所有在[0,0,0]-[10m,10m,10m]这个盒子之内的对象: 其中ElementsInBox还可以指定对象类型做进一步筛选. LimitsBox box = LimitsBox.Create(Position.Create(0, 0, 0), Position.Create(10000.0f, 10000.0f, 10000.0f)); DbElement[] eles = Spatial.Instance.Eleme…
阅读数:3323 每当我们在进行AE开发,出现错误时经常会出现错误代码,但是我们并不知道它到底代表什么意思,这里的而错误编码我们可以对照着找到我们需要的时候常详细信息(问题是,经常还是会出现没有错误编码HRESULT ~COMException~因为COM组件的开发人员已经给这个异常一个返回的Message了,如果没有错误的Message才会返回一个HRESULT 代码:但是实际效果是,返回的Message大多数时候都非常的简单,我们还是不知道为什么错误!) 本来我想使用markdown重新写一…
目前手头一个项目,关于制图统一平台的,特别研究了CAD中的字体,总结出来,给需要的朋友,希望少走弯路.1.cad2008中,netload之后,输入注册的命令,提示未知命令解决:将引用中CAD两个dll,复制到本地设置为false2. CAD中含文字的对象包括:单行文本,多行文本,属性定义,属性参照,标注,块参照(注意块参照中可以包含前面所有对象)对应的过滤器为 TypedValue value1 = new TypedValue((int)DxfCode.Start, "text,mtext,…
转自:https://blog.csdn.net/weixin_42032107/article/details/80644991 1.   在form窗体中添加菜单栏和状态栏控件 2.   添加license和工具栏控件, 3.   设置工具栏的Dock属性 4.   添加拆分器控件 5.   在拆分器的Panel1中再添加一个拆分器控件(用于分隔图层控件和鹰眼) 6.   设置它的Orientation属性 7.   在拆分器的右边添加一个分页控件 8.   设置它的Alignment和Do…
Pane pane = new Pane(); pane.Enabled = true; pane.Text = "状态条按钮"; pane.ToolTipText = "新建的状态条按钮"; pane.Visible = true; pane.MouseDown += new StatusBarMouseDownEventHandler((o, e) => { MessageBox.Show("Hello!"); }); CADAPP.S…
ProgressMeter pm = new ProgressMeter(); pm.Start("正在执行..."); pm.SetLimit(100); for (int i = 0; i <= 100; i++) { System.Threading.Thread.Sleep(100);//为了模拟效果,做的延时 pm.MeterProgress(); } pm.Stop();…
Database db=HostApplicationServices.WrokingDatabase; Editor ed=Autodesk.AutoCAD.ApplicationService.Application.DocumentMannger.MdiActiveDocument.Editor;…
CAD2007版本 acDoc.Editor.WriteMessage( string.Format("[{0:F1},{1:F1},{2:F1}] - [{3:F1},{4:F1},{5:F1}]\n", acText.GeometricExtents.MinPoint.X, acText.GeometricExtents.MinPoint.Y, acText.GeometricExtents.MinPoint.Z, acText.GeometricExtents.MaxPoint.…
Document doc = Application.DocumentManager.MdiActiveDocument; Editor ed = doc.Editor; ed.WriteMessage(RXObject.GetClass(typeof(Polyline)).DxfName + "\n"); ed.WriteMessage(RXObject.GetClass(typeof(Polyline2d)).DxfName + "\n"); ed.WriteM…
1.通过ITopologicalOperator接口,此方法适用于需要获得包含几个或多个要素的最小外包矩形 public IEnvelope GetEnvelope(IGeometryCollection pGeometryCollection) { IPolygon pPolygon = new PolygonClass(); ITopologicalOperator pTopo; pTopo = pPolygon as ITopologicalOperator; pTopo.Construc…
写了个标题好长啊~~~~ 这两天又认识了一个新玩意,记录一下下,啦啦啦~~~~~ 话说,认识arcgis快十年了,从桌面版到engine的二次开发,其实不过才认识到它的冰山一角, 它总是能带来很多还未知的东西,实话说,就是如此的热爱着它,因为从来都觉得遨游其中,没有边界~~~~~ arcengine二次开发,这个玩意现在已经不流行了,但是其奥妙和乐趣依然无穷~~~~ 言归: 一. 之前写的basetool,basecommand等类都是在独立的系统中运行的,没有单独注册成过组件在桌面版arcma…
文章出自https://blog.csdn.net/qq_41843732/article/details/91422764 在UG二次开发中,若使用MFC库,一旦加上#include<Afx.h>头文件,下面这句话就报错 theDialog = GetPoints::theUI->CreateDialog(theDlxFileName); 解决CreateDialog函数在UI.hxx文件和WinUser.h中的冲突 在windows API中已经将CreateDialog定义为宏 C…