08 2012 档案

摘要:C# 用户经常提出两个问题:“我为什么要另外编写代码来使用内置于 Windows 中的功能?在框架中为什么没有相应的内容可以为我完成这一任务?”当框架小组构建他们的 .NET 部分时,他们评估了为使 .NET 程序员可以使用 Win32 而需要完成的工作,结果发现 Win32 API 集非常庞大。他们没有足够的资源为所有 Win32 API 编写托管接口、加以测试并编写文档,因此只能优先处理最重要的部分。许多常用操作都有托管接口,但是还有许多完整的 Win32 部分没有托管接口。 平台调用 (P/Invoke) 是完成这一任务的最常用方法。要使用 P/Invoke,您可以编写一个描述如何调.. 阅读全文
posted @ 2012-08-20 13:46 Cad人生 阅读(2387) 评论(0) 推荐(0)
摘要:在命令行输入"UNDO",会看到"Enter the number of operations to undo or [Auto/Control/BEgin/End/Mark/Back]",本文就利用"BEgin/End/Mark/Back”在ARX开发中实现Undo的操作。1. Undo 操作的结构:_BEgin_Mark_Undo_End2. 注意事项:一组{_BEgin, _End}为一个操作单元,其内部不能再嵌套另一个{_BEgin, _End}。{_BEgin, _End}不能嵌在任何Transaction内部,但其内部可以嵌任意多个 阅读全文
posted @ 2012-08-20 13:41 Cad人生 阅读(1461) 评论(1) 推荐(0)
摘要:1:代码中使用了未初始化的类的属性,程序直接致命错误(不报错);典型例子int a;(中间代码)MessageBox.Show(a.Length.ToString());2:事务声明了以后没有dispose所以最好用using(transation=xxxxx){}来自动销毁 阅读全文
posted @ 2012-08-20 13:38 Cad人生 阅读(413) 评论(0) 推荐(0)
摘要:1:设置引用的cad目录下dll文件的本地化为false:例如:acmgd.dll和acdbmgd.dll的“Copy to Output Directory”属性设置成flase。2:清除debug(release)目录下的所有文件,重新生成;3:有时部分命令无效,原因是程序初始化时向cad注册了了一部分命令后,遇到重复注册的命令,手动或者自己写代码搜索重复注册的命令后清除即可。 阅读全文
posted @ 2012-08-20 13:35 Cad人生 阅读(599) 评论(1) 推荐(0)
摘要:在NETAPI开发中,如果你使用了模态窗口,并且想从模态窗口中暂时中断,回到主窗口进行一些交互操作,然后再继续模态窗口中的任务,该如何操作?典型的就是 modal progress bar。也许你第一个会想到把窗口 HidemodalForm.Hide();while(...) //等待主窗口的交互结果{ ... Application.DoEvent();}modalForm.ShowDialog(); //Continue 结果可能会让你失望,modalForm是Hide 了,但焦点却无论如何不能回到主窗口了。我们可以通过win32的API 将焦点重新设到主窗口。首先要得到m... 阅读全文
posted @ 2012-08-20 13:27 Cad人生 阅读(1626) 评论(0) 推荐(0)
摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 using System;using System.Collections.Generic;using System.IO;using System.IO.Packaging;public class SharpZip{ private const long BUFFER_SIZE = 4096; public static void CompressFiles(List<strin 阅读全文
posted @ 2012-08-20 13:20 Cad人生 阅读(3263) 评论(3) 推荐(0)
摘要:dxf文件比dwg文件更轻巧,而且其文件结构是公开的官方文档:http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=12272454&linkID=10809853推荐一个好用的开源dxf类库.net DXF Reader-Writer, 目前支持的对象有以下几种:3dFaceArcCircleEllipseInsert (block references and attributes)LightweightPolylinesLinePointPolylinePolyline3dPolyfaceMeshSolidT 阅读全文
posted @ 2012-08-20 13:17 Cad人生 阅读(1783) 评论(0) 推荐(0)
摘要:[StructLayout(LayoutKind.Sequential), Wrapper("AcGeTol")]public struct Tolerance {}功能:这个NET类封装了arx中的AcGetTol类这个类可以被实例化,在它默认的构造函数中会被赋予默认的容差值。但同时,容差也可以被赋值以满足用户的特定需求,比如:曲面相交的处理。容差有两个属性:EqualPoint,EqualVector使用方法1. 判定两个Point :p1 and p2平行:(p1 - p2).length() <= equalPoint2. 判定两个向量V1,v2相同(v1 - 阅读全文
posted @ 2012-08-20 13:12 Cad人生 阅读(621) 评论(0) 推荐(0)
摘要:英文词汇 大陆词汇 台湾词汇2D Solid 二维实体 2D 实面 2D Wireframe 二维线框 3D Array 三维阵列 3D 阵列 3D Dynamic View 三维动态观察 3D 动态检视 3d objects 三维物体 3D 物件 3D Orbit 三维轨道 3D 动态 3D Orbit 三维动态观察 3D 动态 3D Studio 3D Studio 3D Studio 3D Viewpoint 三维视点 3D 检视点 3dpoly 三维多段线 3D 聚合线 3dsin 3DS 输入 3D 实体汇入 3DSolid 三维实体 3D 实体 3dsout 3DS 输出 3D 实 阅读全文
posted @ 2012-08-20 10:13 Cad人生 阅读(2945) 评论(0) 推荐(0)
摘要:utoCAD 幻灯片文件是由 MSLIDE 命令写入并由 VSLIDE 命令读取的屏幕图像。 本节介绍幻灯文件的格式,以便于希望在程序中融入幻灯支持的开发人员进行开发。幻灯文件由标题部分(31 字节)以及一个或多个可变长度的数据记录组成。 写入幻灯文件的所有坐标和大小都基于创建幻灯时显示设备的图形区,点 (0,0) 位于图形区的左下角。 对于 AutoCAD R9 以及更高版本,幻灯文件标题由以下字段组成:幻灯文件标题字段字节说明ID 字符串17“AutoCAD 幻灯片”CR LF ^Z NUL类型标识符1当前设置为 56(十进制)层指示器1当前设置为 2高 X 点2图形区域的宽度:1,以像素 阅读全文
posted @ 2012-08-18 22:46 Cad人生 阅读(7008) 评论(1) 推荐(0)
摘要:非win7系统,在“控制面板”中启动“添加删除程序”,选中Vs2008,点击“更改、删除”, 输入序列号:PYHYP-WXB3B-B2CCM-V9DX9-VDY8T;win7系统下输入框被微软了,下载个工具http://down.qiannao.com/space/file/qiannao/share/2010/7/13/CrackVS2008ForWindows7.zip/.page 阅读全文
posted @ 2012-08-18 08:42 Cad人生 阅读(716) 评论(0) 推荐(0)
摘要:一个完整的slb文件由如下部分构成:sld的头部格式:共32 bytesAutoCAD Slide Library 1.0" CR LF ^Z NUL NUL NUL NULslb内包含的一个或多个sld文件的入口,36字节一组:One or more slide directory entries (36 bytes each)一个或者多个sld文件的内容,长度可变:One or more slides (variable length)sld文件的入口的格式:Slide directory entries have the following format:slide名(32字节 阅读全文
posted @ 2012-08-17 21:31 Cad人生 阅读(2729) 评论(0) 推荐(0)
摘要:用c#模仿了一遍,实现了如下功能:1、显示启动屏幕(用自定义的启动屏代替 AutoCAD 的启动屏);2、启动 AutoCAD;3、自动加载其他“你的软件包”相关的若干个 dll,arx,lisp等 程序;4、初始化与发行软件相匹配的 AutoCAD 环境参数变量;5、退出启动屏幕,将控制权限移交给 AutoCAD。关键在于如何检测cad已经启动完毕,及时关闭启动屏。 关键语句IntPtr cadPtr =MainForm.hwnd_CAD ; try { BringWindowToTop (cadPtr ); if (IsW... 阅读全文
posted @ 2012-08-16 23:15 Cad人生 阅读(982) 评论(0) 推荐(1)
摘要:原因是序列化时把序列化类的命名空间等信息保存了,但应用程序和类库的命名空间可能是不一样的,所以提示找不到程序集。解决方法如下:1.将dll加入强名称,注册到全局程序集缓存中2.在反序列化使用的IFormatter 对象加入Binder 属性,使其获取要反序列化的对象所在的程序集,示例如下:12345678910111213141516public void DeSerialize( byte [] data, int offset) { IFormatter formatter = new BinaryFormatter(); formatter.Binder = new UBinder(); 阅读全文
posted @ 2012-08-16 19:04 Cad人生 阅读(589) 评论(0) 推荐(1)