自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦之颠——应用与二次开发专栏

予人玫瑰,手留余香!

  • 博客(51)
  • 资源 (14)
  • 收藏
  • 关注

原创 SVN的代码迁移到TFS的方法

1.代码之前是SVN管理的,准备换TFS管理。首先解除SVN文件夹绑定(1). 创建一个reg文件(2). 在文件中填入如下内容并保存:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]@="Delete SVN Folders"[HKEY_LO...

2018-12-03 15:42:49 896

原创 OSG&OSGEarth中文处理方法

std::string StringToUTF8(const std::string& str){ std::wstring ansiStr; { int nLen = ::MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.length(), NULL, 0); WCHAR* buffer = new WCHAR[nLen + ...

2018-11-28 11:13:27 800 2

原创 OSG之禁用按下Escape关闭视图

我们在操作视图的时候,按下Escape视图被动关闭,操作起来着实不方便。如何才能禁用Escape关闭视图呢?查看源码发现如下: /** Set the key event that the viewer checks on each frame to see if the viewer's done flag should be set to * signal...

2018-11-27 14:44:54 976

原创 OSGEarth之坐标转换

// 屏幕坐标转世界坐标osg::Vec3d Global::ScreenToWorld(const osg::Vec3d screen){ osg::Camera* camera = _global->Viewer->getCamera(); osg::Matrix VPW = camera->getViewMatrix() * camera->getProjec...

2018-11-27 13:48:27 4269

原创 EarthManipulator的缩放问题

EarthManipulator默认的操作是向里滚动,地球远了,向外滚动,地球进了。我不太习惯这种操作,我个人认为向里滚动,地球近了,向外滚动,地球远了。查找了一下EarthManipulator的源码,在初始化的时候简单修改一下。_scroll_sens ( 1.0 )将1.0改为-1.0即可。_scroll_sens ...

2018-11-21 19:01:50 1187 1

原创 OSGEarth关闭光照的方法

方法一:earth文件配置关闭 <options> <lighting>false</lighting> <terrain> <lighting>false</lighting> </terrain> </options>方

2018-11-20 17:43:37 2218

原创 EarthManipulator实现定位

EarthManipulator* em = new EarthManipulator(); viewer.setCameraManipulator( em );方法一 em->setTetherNode( app.geo ); osgEarth::Viewpoint vp; vp.setNode( app.geo ); vp.headi...

2018-11-20 16:21:35 2462 1

原创 ATL对象构造及互转方法

1.对象构造CComObject<CITest>* test;CComObject<CITest>::CreateInstance(&test);2.CComObject转IITest*test->QueryInterface(__uuidof(IITest), (void **)pVal);3.IITest**转CComObject*CCom...

2018-11-20 16:07:46 258

原创 OSGEarth添加渲染器

Earth的渲染机制和OSG的不一样,具体区别我也说不出一二来,直接上代码。 _global->Caster->setLight( _global->Viewer->getLight() ); _global->Caster->getShadowCastingGroup()->addChild( _global->MapNode->get...

2018-11-20 15:55:10 3292 1

原创 OSGEarth添加天空盒

在Earth的基础上添加天空盒,使得Earth更加好看。 _global->SkyNode->setDateTime(osgEarth::DateTime(d.year(), d.month(), d.day(), 5.0)); if ( _global->MapNode->getNumParents() > 0 ) { osgEarth::insert...

2018-11-20 15:48:05 4439 9

原创 计算任意模型中心经纬度的方法

废话不多说,先上核心代码: osg::NodePathList nodePaths = node->getParentalNodePaths(); if ( nodePaths.empty() ) return 0; osg::NodePath path = nodePaths[0]; osg::Matrixd localToWorld = osg::com...

2018-11-20 10:06:17 1401 1

原创 C#的exe调试C++COM组件

COM组件不是EXE,它不能独立执行,须附加在一定的应用程序上,通过设置相应的参数,就可以进行调试。1.新建C#窗体项目,加按钮并实现加载模型功能。路径F:\SVN\ViewControlExamples\ViewControlExamples\bin\x64\Debug\ViewControlExamples.exe2.配置路径3.编译COM组件,按F5即可启动调试。这里说了较为...

2018-11-20 09:56:57 511 2

原创 OSG&OSGEarth编译心得

编译OSG下载数据源http://www.openscenegraph.org/downloads/stable_releases/下载最全的(含full)第三方库https://download.osgvisual.org/官网下载源码http://www.openscenegraph.org/index.php/download-section/stable-releases...

2018-11-20 09:45:21 5817 3

原创 网页版使用Skyline64位COM组件

之前一直使用的是Skyline6.6.0 32位COM组件,并未发现什么问题,后来换了Skyline7.0.1 64位COM组件之后,浏览器不能正确的运行。查询了一些资料,最后找到了解决方法。1.在注册表里找到CURRENT_USER\Software\Microsoft\Internet Explorer\Main2.添加TabProcGrowth添加一个DWORD (32-bi...

2018-08-27 08:38:45 1043 1

原创 WPF去除边框的方法

WPF中,设置AllowsTransparency=true去除边框的方法比较简单,这里不做详细说明。下面主要演示AllowsTransparency=false的时候去除边框的方法。1.去网上下载一个Microsoft.Windows.Shell.dll 2.添加引用xmlns:shell="http://schemas.microsoft.com/winfx/2006/xaml/pr...

2018-08-23 11:38:37 4474 1

原创 MAX之不关闭MAX脚本开发

今天教大家如何将max插件开发与C#结合起来,以弹出框为例。 这种开发方式的三大优点1.开发过程中不需要关闭MAX2.可以引用三方组件3.开发过程汇总可以调试1.新建类库,命名:TestPlugin 2.右键属性,修改项目输出路径我的路径为:E:\Program Files\Autodesk\3ds Max Design 2015\plugins\TestPlugin...

2018-08-20 14:58:39 3379

原创 MFC+OSG之UI COM组件开发

前几天研究了WPF开发UI COM组件,今天结合OSG给大家演示一下如何开发OSG的UI COM组件。我这里的OSG环境是之前搭建好的,环境没有搭建好可以参考如下网站:[OSG+VS2015+Win10配置](https://blog.csdn.net/wangshubo1989/article/details/51591802%20OSG+VS2015+Win10%E9%85%8D%...

2018-08-20 10:51:50 1139

原创 WPF之DataGrid主从表实现方法

最近研究了一下DataGrid主从表的设计,现在分享给大家!不说废话,直接上示例代码。1.首先定义如下几个结构public class Model : UIView { private int m_id; private string m_name; private SexType m_sex; private int...

2018-08-20 10:31:29 3359 1

原创 MFC开发之UI COM组件

前几天有一个UI COM组件的需求,查了一些相关资料,完整的梳理了一遍,下面遍将梳理的内容分享。1.新建项目 2.下一步 3.设置项目属性 4.添加对话框 5.设置对话框属性 ,并添加一个测试按钮 Boder:None Control:True ID:IDD_MAIN_VIEW Style:Child System Menu:F...

2018-08-17 10:49:25 1349

原创 c++调用.NET dll

首先新建一个c++应用程序(我选的是控制台应用程序+window) 2.0配置属性引用.NET dll#using "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll"#using "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll"#us

2017-03-14 16:09:20 4768

原创 C#开发ActiveX控件并应用于网页

在C#中相对应的是COM组件,编译后是dll而不是ocx。所以在C#中,在创建项目时只能创建类库项目。 下面我教大家如何一步一步来实现。以管理员的身份启动VS,我的是VS2015。新建类库DevControlColl,框架选择2.0即可。环境配置(勾选一下两个选项)对AssemblyInfo.cs进行编辑,修改相应的属性 // 将false更改为true,自动生成的注释也做了说明

2017-03-14 14:58:58 5359 2

原创 几种常见的排序算法

交换两个对象(排序中会用到)private static void Interop_ExchangeValue<T>(ref T m, ref T n){ T Temp = m; m = n; n = Temp;}插入排序public static void InsertSort<T>(ref T[] array, IComparer<T> comparer){

2017-03-14 14:25:06 468

原创 revit api 之PostCommand用法之一

发送内部命令 public void PostCommand(RevitCommandId commandId);切换到三维试图uiApp.PostCommand(RevitCommandId.LookupPostableCommandId(PostableCommand.Default3DView));删除选中的元素UIApplication uiApp = data.Applicati

2017-02-24 14:40:26 4877 3

原创 revit api选择Element上的点画线

public Result Execute(ExternalCommandData data, ref string message, ElementSet elements) { try { UIDocument uiDoc = data.Application.ActiveUIDocument; Selection sel = uiDoc

2017-02-24 13:51:59 2012

原创 revit之射线法查找特定元素

我们在开发的过程中,射线法用的也挺多的,比如:想找到所有的梁;想找到离某一元素最近的元素等。今天简单的简介一下射线的用法。射线的发的核心类:ReferenceIntersector 他的内部有2中射线法查找的方法 查找符合条件的所有元素 IList Find(XYZ origin, XYZ direction) 查找符合条件的最近元素 ReferenceWithCont

2017-02-23 18:23:19 1822 2

原创 NW之模型的快速、平滑定位

在查看模型的过程中,我们常会用到模型定位,下面我介绍两种模型定位的扩展方法。快速定位/// <summary>/// 快速缩放至所有模型./// </summary>/// <param name="doc">The document.</param>/// <param name="items">The items.</param>/// <author>YangSen</author>

2017-02-22 11:54:07 997

原创 NW中创建接口的方法

比如需要创建InwOaPropertyVec、InwOaProperty、InwGUIPropertyNode2等,则可以使用下面的通用方法进行创建。public static T NewObject<T>(this InwOpState10 state){ try { Type type = typeof(T); string value = "e

2017-02-21 19:58:36 1219

原创 revit中绘制任意直线

revit二次开发的过程中常用的方法。public static void NewLine(this Document doc, XYZ pStart, XYZ pEnd) { if (pStart.IsAlmostEqualTo(pEnd)) { return; }

2017-02-21 19:40:49 5670 4

原创 win32api之修改revit状态栏提示

在使用revit进行二次开发的时候,我们经常需要做一个提示,方便用户操作。api中提供了选择对象的时候可以设置提示信息,这样很不方便,下面我们使用win封装revit的状态栏提示,让大家可以很方便的设置你想提示的内容。public class StatusBar{ private static IntPtr m_statusBar = IntPtr.Zero; /// <summar

2017-02-21 13:13:54 1618

原创 win32api之虚拟键盘

在做开发的时候,UI上的一些快捷键可以使用虚拟键来触发。比如:revit二次开发中的快捷键后台触发。/// <summary>/// 虚拟键盘./// </summary>/// <author>YangSen</author>/// <date>2016/12/1</date>public class VirtualKeyboard{ /// <summary> ///

2017-02-21 12:58:45 2351

原创 win32api之窗体穿透

/// <summary> /// 窗体效果. /// </summary> /// <author>YangSen</author> public class WindowEffect { private const uint WS_EX_LAYERED = 0x80000; private const int WS_EX_T

2017-02-21 12:53:05 2094

原创 win32api之添加水印

不多说,直接上代码。 public class Watermark { private const int EM_SETCUEBANNER = 0x1501; /// <summary> /// 设置水印. /// </summary> /// <param name="handle">The handle.

2017-02-21 12:49:24 1837

原创 3ds Max .NET二次开发的基础入门篇

3ds Max .NET SDK由以下.NET程序集组成。3ds Max从bin / assemblies文件夹中加载插件。 public static class AssemblyEntry { /// <summary> /// 启动时候执行. /// </summary> /// <author>YangSen</a

2017-02-21 12:42:54 10024 10

原创 cad中绘制一条直线

绘制一条直线 public void DrawLine(Editor ed, Point3d start, Point3d end) { try { double[] startPoint = new double[3] {

2017-02-17 12:35:42 1143

原创 NW中Geometry的使用技巧

设置SelectionBehaviorlectionBehavior = SelectionBehavior.Geometry;利用Search去查找 // 查找所有 public ModelItemCollection GetGeometrys() { Search s = new Search();

2017-02-17 10:07:26 805

原创 资源打包Assetbundle

在开发的过程中,我们需要加载外部资源,将先将资源打包为*.assetbundle文件,然后程序中可以之间使用。创建AssetBundle/// <summary> /// 将选中的预制分别打包 /// </summary> [MenuItem("DevTools/Build AssetBundles")] static void Create

2017-02-17 09:45:54 594

原创 NwCreate之创建nwc文件

环境:Navisworks 2016、Navisworks 2016 SDK、Microsoft Visual Studio 2013。1、创建应用程序,选择默认设置,点击完成。2、在新建项目右键“属性“,设置平台为x64。3、安装了SDK之后,在安装目录会多出一个api文件夹,这里只介绍nwcreate4、设置附加包含目录(include)。5、设置附加依赖项(nwcreate.lib、lcodp

2016-07-13 22:55:05 2069 2

原创 理解矩阵乘法

大多数人在高中,或者大学低年级,都上过一门课《线性代数》。这门课其实是教矩阵。刚学的时候,还蛮简单的,矩阵加法就是相同位置的数字加一下。 矩阵减法也类似。 矩阵乘以一个常数,就是所有位置都乘以这个数。 但是,等到矩阵乘以矩阵的时候,一切就不一样了。这个结果是怎么算出来的? 教科书告诉你,计算规则是,第一个矩阵第一行的每个数字(2和1),各自乘以第二个矩阵第一列对应位置的数字(1和1),然后将

2016-07-13 22:15:37 860

原创 委托的简单应用

int Max(int x, int y) { return x > y ? x : y; } int Min(int x, int y) { return x < y ? x : y; }在C++中可以定义一个函数指针:申明:int (*p)(int,int)

2013-08-27 21:40:43 1079

原创 删除实例

可以根据需要,删除不需要的实例。 Transaction tsSaveAsSelected = new Transaction(doc, "SaveAsSelected"); tsSaveAsSelected.Start(); foreach (Element e in collection)

2013-08-27 21:33:43 1283

自定义IP控件

编写空间的原由:一同事做服务器配置,需要进行IP地址的读写,我利用空余时间并参照网上的一些资料花了一下午自己写了 一个,基本满足要求。后续有时间在继续优化。完全开源,分享给大家。

2013-08-21

文档XML的读写

这是之前同事提出的一个简单的需求,但是对初学者来说我个人觉得还是很用用的。现在分享给大家~

2013-08-20

MediaPlay(播放器)

用C#做的一个MediaPlay,应用了com组件,里面就几行代码,分享一下~

2013-08-20

dll反编译工具

个人认为,这个工具好事蛮不错的。我之前写过一个控件,重装系统的时候忘记拷源码了,结果远吗丢了。后来想起我把dll给我朋友发过,然后又要了一个dll文件,找到了这个工具,几秒的时间,源码找回来了,当时的心情别说有多激动了。然后新建了一个工程,一会儿的功夫就把源码整理好了,切身体会到了这个工具的重要性。别人的dll如果没有加密,你也可以反编译,看看别人是杂么实现的,从中学习也是一种不错的方法。

2013-08-18

简单工厂模式的实例

最近在学习设计模式,看了简单工厂模式后写了一个简单的例子,供初学设计模式的朋友参考参考。感觉重要的是如何把简单的问题抽象出来。

2013-08-18

初级程序员历年真题及答案(05年~9年)

初级程序员历年真题及答案(05年~09年)(暂缺06年下半年的和09下半年的) 初级程序员10参考答案

2011-03-27

calculator

1.可以实现简单的+、-、*、/四则混合运算。 2.可以计算sin、cos等 3.可以进行进制转换。 4.输入错误会给出相应的错误报告。 5.具有删除、清零、退出等功能。 6.具有美观的界面。

2010-04-04

Calculator

1、可以实现简单的+、-、*、/四则混合运算。 2、可以播放音乐。 音乐自己插入,命名为"Music.WAV"置于生成的Debug中或置于Calculator文件夹中即可。 3、输入错误会给出相应的错误报告。 4、具有删除、清零、退出等功能。 5、具有美观的界面。

2010-04-04

几个经典的C语言小游戏源码

我从网上搜了一些几个C语言小游戏源码,觉得不错,分享给大家,供大家参考!

2010-03-19

MFC设置按钮--多边形按钮

它包含了2个重要文件(头文件和源文件),一起来完成按钮的形状设置等诸多问题,是按钮变的更佳好看。

2010-01-09

课程设计--用MFC编的超牛的《五子棋》

本系统采用Visual C++ 6.0作为开发工具,运用了面向对象的编程方法。这是老师给的一个程序实例,里面的棋盘、黑白棋子的制作值得我们去学习。在此分享,供大家参考、学习......祝大家学的愉快!

2010-01-08

航空售票订票系统++数据库课程设计

本系统采用Visual C++ 6.0作为开发工具,运用了面向对象的编程方法。这种方法与人的思维方式相似,能够方便的描述客观事物,同时也便于程序员维护代码。面向对象取代了传统的过程式的编程思想,转向用类来描述一类事物,再通过继承多态形成事物的多样化。

2010-01-08

VC编的《坦克大战》

大家小的时候经常玩的一个有趣的游戏,现在在MFC的帮助下,亦可玩的不亦乐乎。快快行动吧。

2010-01-07

航空售票订票系统++数据库课程设计

本系统采用Visual C++ 6.0作为开发工具,运用了面向对象的编程方法。这种方法与人的思维方式相似,能够方便的描述客观事物,同时也便于程序员维护代码。面向对象取代了传统的过程式的编程思想,转向用类来描述一类事物,再通过继承多态形成事物的多样化。供大家参考......

2010-01-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除