几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(VB.NET/C#)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


回复
 
主题工具 搜索本主题 显示模式
旧 2009-04-29, 04:57 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】[kean]把autocad 2009嵌入一个单独的对话框 - 精华帖集合

[kean]把autocad 2009嵌入一个单独的对话框 - 精华帖集合
www.dimcax.com
[kean]把autocad 2009嵌入一个单独的对话框
,
原贴:
翻译:才鸟( )
autocad 2009引入了一个通过activex控件在一个单独的对话框或窗体内购入autocad程序的功能。这个功能已经存在于好几个版本的autocad oem中了,现在这个功能可以在主要的autocad产品中可以得到。
控件工作的方式是在后台载入一个autocad实例(系统中必须安装autocad,这个应该不用说了,但我还是提醒一下:-),然后控件会把autocad生成的图形载入到它所确定的区域。它也会响应从鼠标移动或按键来让你控制内嵌的autocad。
这个控件非常棒:你可以看到标准的光标,能够通过动态输入来键入命令,或多或少可以与在完整的autocad程序中做相同的事。如果你想为他人一个缩减的用户界面,那么这个控件是特别方便的。
让我们来看一下这个控件,请在visual studio 2005中新建一个c#windows程序项目(你可以使用任何一个你喜欢的activex容器,它甚至可以用在网页或office文档中):
visual studio创建完这个新的项目后,我们需要在工具箱中添加控件。如果你在工具箱中右击,你应该可以选择“选择项目...”。
在这com组件中,应该有一个"acctrl"的项目。要不然的话,你可以在c:\program files\common files\autodesk shared\acctrl.dll中浏览到它。
然后只要简单地把控件放到窗体中。
做完上面的工作,我们将添加其它的控件——用于选择图形路径和一个文本字符串用来向内嵌的autocad程序发布命令。
下面是我们用来控制窗体中控件的c#代码。
using system;
using system.windows.forms;
namespace embedautocad
{
public partial class mainform : form
{
public mainform()
{
initializecomponent();
}
private void browsebutton_click(object sender, eventargs e)
{
openfiledialog dlg = new openfiledialog();
dlg.initialdirectory =system.environment.currentdirectory;
dlg.filter = "dwg files (*.dwg)|*.dwg|all files (*.*)|*.*";
cursor oc = cursor;
string fn = "";
if (dlg.showdialog() ==dialogresult.ok)
{
cursor = cursors.waitcursor;
fn = dlg.filename;
refresh();
}
if (fn != "")
this.drawingpath.text = fn;
cursor = oc;
}
private void loadbutton_click(object sender, eventargs e)
{
if (system.io.file.exists(drawingpath.text))
axacctrl1.src = drawingpath.text;
else
messagebox.show("file does not exist");
}
private void postbutton_click(object sender, eventargs e)
{
axacctrl1.postcommand(cmdstring.text);
}
}
}
复制代码
最后,运行程序并通过browse/load按钮来运行程序,非常有趣的事情开始了。:-)
试着通过动态输入或者"post a command"文本框来键入命令。你可能会有点迷惘,因为缺少了命令行(我真的太喜欢我的命令行了),但是动态输入可以让你至少看起来是在键入东西。
本例的c#代码:
太好了,老大,是不是只有安装了2009版之后才会有这个控件啊.
模具相关绿色软件
皆唯网
这个功能很不错,我以前就想要这个!!!
每个人都应该有一颗感恩之心!
好像忒牛了点。

这个类似于gis的map开发了
vb c# vlisp autocad gis
非常好的功能,其他版本的cad有这个控件吗?
是不是还是需要安装cad2009,只是用这个控件的时候不用直接打开cad的界面了?
应该是09才有的,因为我没装09,装了08,到相关文件夹中未找到acctrl.dll,结合菜鸟的翻译可以得出结论,只有装了09的系统才有此控件。
但是这个控件能否拷贝到没有09的机器上使用还未确定,我估计是不行,有朋友实验过了请留言。
没有这个控件可以用win api设置cad的parent为你自己的窗体,也可以把cad嵌入自己的界面来。
楼上说的没错,不装09这个控件是不能用的。
没有这个控件可以用win api设置cad的parent为你自己的窗体,也可以把cad嵌入自己的界面来。
这个有没有具体的代码实例?
c#最适合开发autocad,因为它拥有vb容易的特点,却具有vc++的强大功能。
菜鸟兄,是setparent函数,网上的实例大把大把的。
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 05:10 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多