【MSTN 】 Key-in 命令

各位老师

    如何查看各种key in命令(如:测量)?

  • 以下针对MicroStation来说明查看图标对应的Keyin命令的三种方法:

     

    ①用BMR(Bentley Macro Recorder)功能。在Utilities下能找到。启动录制宏功能,然后点击图标,停止录制。查看录制内容

     

    有些图标关联的功能没有提供录制功能,所以第一种方法可能不起作用。可改用下面的方法。

     

    ②打开Named Expression对话框,在左侧栏中选中CommandString,点击一个图标后在该对话框中下部点一下Test按钮,其后能出现对应的键入命令

     

    ③打开Customize Ribbon界面,点击左下角的Custom Tools and Tasks,选Tools卡片,展开Application Tools下的MicroStation,能找到各个ToolBox,进一步展开能看到每个图标,点开图标后在下部有Key-in栏。

    Answer Verified By: 超 上官 

  • 谢谢 张工 已经找到KeyIn命令    CadInputQueue.SendKeyin "MEASURE DISTANCE ICON "

     张工还有问题想请教您,我们键入Keyin命令之后 程序运行软件自带的测量命令了,我们该如何控制其测量结束,并且返回得到其测量值??

    因为之前没有完全调用过MS命令 所以有些疑问。。

    Sub Bmr1()
        Dim startPoint As Point3d
        Dim point As Point3d, point2 As Point3d
        Dim lngTemp As Long
        Dim oMessage As CadInputMessage
    
    '   传送一个键入命令串
        CadInputQueue.SendKeyin "MEASURE DISTANCE ICON "
    
    '   坐标以主单位计
        startPoint.X = 2000#
        startPoint.Y = 2000#
        startPoint.Z = -2100#
    
    '   给当前命令传送一个数据点
        point.X = startPoint.X
        point.Y = startPoint.Y
        point.Z = startPoint.Z
        CadInputQueue.SendDataPoint point, 1
    
        point.X = startPoint.X + 4.5474735E-13
        point.Y = startPoint.Y - 4000#
        point.Z = startPoint.Z
        CadInputQueue.SendDataPoint point, 1
    
        point.X = startPoint.X + 992.804793013153
        point.Y = startPoint.Y - 3565.0821420918
        point.Z = startPoint.Z
        CadInputQueue.SendDataPoint point, 1
    
    '   传送一个重置给当前命令
        CadInputQueue.SendReset
    
        CommandState.StartDefaultCommand
    End Sub

  • 这个没办法捕捉插件吧,除非你自己写个一模一样的插件?

  • 那C#方法可以返回测量值吗?VBA 里面有个CommandState.MeaureResult1和MeasureResult2 不知道C#里面是怎么写?

  • BIM.Application app = Bentley.MstnPlatformNET.InteropServices.Utilities.ComApp;
    double d = app.CommandState.MeasureResult2;