明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2303|回复: 4

如果去掉函数A(),则SendStringToExecute能正常执行,否则几乎没有响应,如何解决。

[复制链接]
发表于 2009-8-28 12:32:00 | 显示全部楼层 |阅读模式
如果去掉函数A(),则SendStringToExecute能正常执行,否则几乎没有响应,如何解决。看函数:[br]

private void looh()
        {
            InsertBlock("c:\\3.dwg", new Point3d(1000, 1000, 0));

            Document acDoc = Application.DocumentManager.MdiActiveDocument;
            acDoc.SendStringToExecute("._zoom e ", true, false, false);
           
            A();
        }

如果去掉函数A(),则acDoc.SendStringToExecute("._zoom e ", true, false, false)能正常执行,
如果执行函数A(),则acDoc.SendStringToExecute("._zoom e ", true, false, false)几乎没有反应,
那位遇到过这个问题,是如何解决的。

发表于 2009-8-28 12:41:00 | 显示全部楼层

还是那句话:SendStringToExecute不要用

要么平台调用Arx的acedCommand方法

要么用代码实现

代码实现的方法:

1、调用Com接口,AcadApplication有ZoomXXX方法

2、仔细看下手册,提供了Zoom命令的实现代码!

 楼主| 发表于 2009-8-28 14:42:00 | 显示全部楼层
lzh741206发表于2009-8-28 12:41:00还是那句话:SendStringToExecute不要用要么平台调用Arx的acedCommand方法要么用代码实现代码实现的方法:1、调用Com接口,AcadApplication有ZoomXXX方法2、仔细看下手册,提供了Zoom命令的实现代

发表于 2009-8-28 16:39:00 | 显示全部楼层
下面的代码代码是反射调用Com的代码
当然,你也可以先引用AutoCad的类型库,
然后直接调用Application.AcadApplication.ZoomExtents()方法
  1. using System;
  2. using System.Reflection;
  3. using Autodesk.AutoCAD.ApplicationServices;
  4. using Autodesk.AutoCAD.DatabaseServices;
  5. [assembly: CommandClass(typeof(TlsCad.TlsTest))]
  6. namespace TlsCad
  7. {
  8.     class TlsTest
  9.     {
  10.         [CommandMethod("zet")]
  11.         public static void ZoomExtents()
  12.         {
  13.             object app = Application.AcadApplication;
  14.             Type acApp = Type.GetTypeFromHandle(Type.GetTypeHandle(app));
  15.             acApp.InvokeMember(
  16.                 "ZoomExtents",
  17.                 BindingFlags.InvokeMethod,
  18.                 null,
  19.                 app,
  20.                 new object[0]);
  21.         }
  22.     }
  23. }
 楼主| 发表于 2009-8-28 17:24:00 | 显示全部楼层
lzh741206发表于2009-8-28 16:39:00下面的代码代码是反射调用Com的代码当然,你也可以先引用AutoCad的类型库,然后直接调用Application.AcadApplication.ZoomExtents()方法using System;using System.Reflection;using Autodesk.

太有才,谢谢!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 04:29 , Processed in 0.158635 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表