吾生有涯 学海无涯
析模有界 知识无界

SpaceClaim开发|01 后台静默调用建模脚本

CFD应用中的二次开发最费时的事情无异于几何参数化建模。在实际应用过程中,有时为了节省时间,常选择成熟的CAD软件作为几何建模工具。此时CAD软件是否支持脚本调用就显得比较重要了。当然有时候为了使开发出来的软件显得更优雅,如果调用的程序能够在后台执行那就更完美了,毕竟谁都不希望在软件使用的过程中弹出个第三方软件的操作界面。SpaceClaim(或Disconvery)能够很好的支持脚本执行,并且也可以通过命令开关实现后台运行。

比如下面所示的在SpaceClaim中通过录制得到的脚本代码:

# Python Script, API Version = V251

# 草绘圆
origin = Point2D.Create(MM(0), MM(0))
result = SketchCircle.Create(origin, MM(15))

# EndBlock

# 实体化草绘
mode = InteractionMode.Solid
result = ViewHelper.SetViewMode(mode, None)
# EndBlock

# 拉伸 1 个面
selection = FaceSelection.Create(GetRootPart().Bodies[0].Faces[0])
options = ExtrudeFaceOptions()
options.ExtrudeType = ExtrudeType.Add
result = ExtrudeFaces.Execute(selection, MM(20), options)
# EndBlock

# 保存文件
DocumentSave.Execute(r"D:cylinder.scdocx", FileSettings1)
# EndBlock

录制完毕后将其保存为文件d:cylinder.scscript

假设本机上SpaceClaim的安装路径为:C:Program FilesANSYS Incv251scdmSpaceClaim.exe

  • 如果想要在命令行中利用SpaceClaim运行脚本,可以使用下面的命令:
"C:Program FilesANSYS Incv251scdmSpaceClaim.exe" /RunScript="d:cylinder.scscript"
  • 如果想要在脚本运行完毕后自动关闭SpaceClaim,可以使用下面的命令
"C:Program FilesANSYS Incv251scdmSpaceClaim.exe" /RunScript="d:cylinder.scscript" /ExitAfterScript=True
  • 如果想要在后台启动SpaceClaim并运行脚本,且在脚本运行完毕后自动退出,可以使用下面的命令:
"C:Program FilesANSYS Incv251scdmSpaceClaim.exe" /RunScript="d:cylinder.scscript" /Headless=True /ExitAfterScript=True
  • 如果想要在程序中调用SpaceClaim并运行脚本,可以编写下面的代码(以C#为例)
using System;
using System.Diagnostics;

publicclassSpaceClaimLauncher
{
    public static void LaunchSpaceClaim(string scriptPath, bool headless = truebool exitAfterScript = true)
    {
        // SpaceClaim.exe的路径
        string spaceClaimPath = @"C:Program FilesANSYS Incv251scdmSpaceClaim.exe";
        // 构建命令行参数
        string arguments = $"/RunScript="{scriptPath}"";

        if (headless)
            arguments += " /Headless=True";

        if (exitAfterScript)
            arguments += " /ExitAfterScript=True";

        try
        {
            // 创建进程启动信息
            ProcessStartInfo startInfo = new ProcessStartInfo
            {
                FileName = spaceClaimPath,
                Arguments = arguments,
                UseShellExecute = false,
                CreateNoWindow = true
            };

            // 启动进程
            using (Process process = Process.Start(startInfo))
            {
                Console.WriteLine($"SpaceClaim已启动,进程ID: {process.Id}");
                // 如果需要等待进程完成,可以取消下面这行的注释
                // process.WaitForExit();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"启动SpaceClaim时出错: {ex.Message}");
        }
    }

    // 示例用法
    public static void Main()
    {
        // 调用函数启动SpaceClaim并运行指定脚本
        LaunchSpaceClaim(@"d:cylinder.scscript");
    }
}

注:以上C#代码为Claude 3.7生成,可以运行,但未做更严格的测试。


(完)

本篇文章来源于微信公众号: CFD之道

赞(0) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《SpaceClaim开发|01 后台静默调用建模脚本》
文章链接:https://www.topcfd.cn/40689/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册