问题描述:
客户反馈sld找不到接口输出sld文件,SendStringToExecute发送命令的方式会弹对话框中断命令输出。
步骤指引:
经过研究可以使用C++的zcedCmd接口发送“MSLIDE”命令可以导出sld文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZwSoft.ZwCAD.Runtime;
using ZwSoft.ZwCAD.ApplicationServices;
using ZwSoft.ZwCAD.Geometry;
using ZwSoft.ZwCAD.DatabaseServices;
using ZwSoft.ZwCAD.EditorInput;
using System.Runtime.InteropServices;
[assembly: CommandClass(typeof(ZrxDotNetCSProject185.Commands))]
namespace ZrxDotNetCSProject185
{
class Commands
{
[DllImport("zwcad.exe", EntryPoint = "zcedCmd", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]
private static extern int zcedCmd(System.IntPtr vlist);
[CommandMethod("Test")]
static public void HelloCS()
{
ResultBuffer rb2 = new ResultBuffer
{
new TypedValue((int)LispDataType.Text, "MSLIDE"),
new TypedValue((int)LispDataType.Text, "test_slide.sld"),
new TypedValue((int)LispDataType.Text, "")
};
zcedCmd(rb2.UnmanagedObject);
}
}
}
拓展:
SendStringToExecute发送命令是异步执行,发送后会直接往下执行代码,无法做到中断执行完命令再执行后续代码,也可以参考示例代码使用“zcedCmd”来发送命令。
| 英文空间链接 |
|---|
★★中望CAD 如何用代码输出sld幻灯片文件?:https://confluence.zwcad.com/pages/viewpage.action?pageId=303728841