SpaceClaim二次开发(7)

       

目录

第九章 Units(单位)

        9.1 系统单位和用户单位

        9.2 输出值

        9.3 输入值

        9.4 自定义转换

第十章 Calling The API From Another Process(从其他进程调用API)

        10.1 .NET远程处理

        10.2 模板客户端代码


本章介绍SpaceClaim二次开发文档的第九章和第十章。(使用的翻译,如有错误,敬请指正)。

第九章 Units(单位)

        9.1 系统单位和用户单位

        SpaceClaim在内部以SI单位工作:米,千克和秒。API也以SI单位工作。用户可能使用其他单位,但内部单位仍然是SI单位。当值呈现给用户或由用户输入时进行转换。

        Window类提供系统单位(SI单位)和用户单位之间的转换。

        9.2 输出值

        Window.Units.Length.Format生成一个可以显示给用户的长度字符串,其中包括单位符号。除了执行单位转换外,此方法还根据用户是使用小数还是分数来格式化输出。

        Window.Units.Angle.Format为角度提供相同的功能。

        9.3 输入值

        要解析用户输入的长度字符串,可以使用Window.Units.Length.TryParse。除了转换为系统单位外,此方法还处理表达式和具有显式单位的值:        

        • "(1 + 2) * 3 ^ (3/3 + 3)" = 243
        • "1cm + 1mm+1/2 mm" = 0.0115

        Window.Units.Angle.TryParse为角度提供了相同的功能。

        9.4 自定义转换

        如果需要对格式进行更多控制,可以使用Window.Units.Length.ConversionFactor和Window.Units.Length.Symbol表示长度,或使用Window.Units.Angle.ConversionFactor和Window.Units.Angle.Symbol表示角度。

第十章 Calling The API From Another Process(从其他进程调用API)

        10.1 .NET远程处理

        SpaceClaim API使用.NET 远程处理,它允许从不同的应用程序域或不同的进程进行调用。目前,仅支持同一计算机上的不同进程。

        SpaceClaim外接程序通常在SpaceClaim进程中的单独应用程序域中运行,但这是由外接程序清单文件中的host属性控制的。将SpaceClaim与其他应用程序集成时,为其他应用程序创建外接程序可能更方便,该外接程序从其他应用程序的进程调用SpaceClaim API。

        10.2 模板客户端代码

        下面是另一个进程中的API客户端的一些模板代码。在本例中,客户端是一个简单的控制台应用程序。

static void Main(string[] args) {

// Initialize must be called before using the API
Api.Initialize();

Session session = GetSpaceClaimSession();
bool startSpaceClaim = session == null;
if (startSpaceClaim) {
    session = Session.Start(60000); // 60 secs timeout
    if (session == null) {
        Debug.Fail("Failed to start SpaceClaim.");
        return;
    }
}

// attach to SpaceClaim session before making other calls 在进行其他呼叫之前附加到SpaceClaim会话
Api.AttachToSession(session);

// if the user exits SpaceClaim, exit this client app too 如果用户退出SpaceClaim,也退出此客户端应用程序
Process process = Process.GetProcessById(session.ProcessId);
process.EnableRaisingEvents = true;
process.Exited += delegate {
Debug.WriteLine("User exited SpaceClaim.");
Environment.Exit(0);
};
ExecuteApiCode();
Console.WriteLine("Press Enter to finish.");
Console.ReadLine();

// if we started SpaceClaim, we shall stop it 如果我们开始SpaceClaim,我们将停止它,
if (startSpaceClaim)
    session.Stop();
}


static Session GetSpaceClaimSession() {
foreach (Session session in Session.GetSessions())
return session;
return null;
}

        在使用API之前,必须调用Api.Initialize。对于外接程序,这是在AddInBase构造函数中自动完成的,但对于单独进程中的独立客户端应用程序,必须显式调用API。

        然后必须调用API。同样,对于外接程序,这在AddInBase构造函数中自动完成。一旦将API连接到服务器,就无法将其分离或重新连接。相反,可以使用单独的应用程序域附加到单独的服务器,这甚至允许同时连接到多个服务器。

        SpaceClaim二次开发文档一共十章,为二次开发提供一个入门级的指导,到此为止整个文档已经介绍完毕了,如果想看原文文档,可以从下方的链接下载,后边开始介绍一些官方开源的二次开发案例。

Developers Guide.pdf
链接: https://pan.baidu.com/s/1ICXLj-tDtGqw7LLgSBmoZg?pwd=kzxk 提取码: kzxk

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值