您好,
[MSCE C#]關於File==>Import file?
是否可以將 File => Import => SHP => select file 以key-in指令方式使用?
例如; msApp.CadInputQueue.SendCommand("FILE IMPORT SHP FILENAME", false); <==sample
有些Import命令会弹出一个对话框,对于这类命令,录制宏(macro)后能看到VBA代码中是通过一个类模块(Class Module)中的对话框处理函数来输入文件名的,此种情况下就需要我们对该类模型进行修改,让它能接受我们任意改变的文件名。
由macro (VBA)找到,
MDL COMMAND MGDSHOOK,fileList_setDirectoryCmd D:\test\
MDL COMMAND MGDSHOOK,fileList_setFileNameCmd TEST.shp
但是在Keyins..., 好像無法使用?
1、自己将这个D:\test\设计为一个变量(比如myFolder),将Test.shp设计为另外一个变量(比如myFile)。
2、从你的代码模块传入这两个变量。
我會試試
string sscmd1 = "MDL COMMAND MGDSHOOK,fileList_setDirectoryCmd D:\\test\\"
string sscmd2 = "MDL COMMAND MGDSHOOK,fileList_setDirectoryCmd TEST.shp"
msApp.CadInputQueue.SendCommand(sscmd1, false);
msApp.CadInputQueue.SendCommand(sscmd2, false);
不是这样的用法。我给您一个多年前做的批量导出VRML格式的的MVBA程序如下,请参考。(您需要一些MVBA的编程知识才可以)要学习MVBA,可看如下视频:
https://communities.bentley.com/communities/other_communities/chinafirst/w/chinawiki/28888/microstation-vba
8508.BatchExportToVRML.mvba
在C# 也可以用嗎? (因為我是要用在c# addin)
你在C#中通过Keyin命令加载一个MVBA程序执行即可。
我試了一下 8508.BatchExportToVRML.mvba,
但是RUN至 If UCase(Right(myFile.Name, 3)) = "DGN" Then 就出現編譯問題, 找不到 Right(...)函數?
不会的呀,这个Right是VBA的标准函数。您是直接运行的我的VBA代码还是改造成C#代码在运行?请看我如下录制的视频:
是否可以在 (MSCE C#)
msApp.CadInputQueue.SendCommand("MDL KEYIN CADIMPORT IMPORT SHPFILE", false);
之後直接帶入SHP filename?
不可以。如果可以的话,我们也不用这么费事儿地录制一个VBA宏了。
請問為何會出現以下問題? 好像是無法找到Scripting.FileSystemObject
但是Scripting.FileSystemObject應該是VBA原有的function才對,
是否缺少安裝什麼VBA object?
謝謝