首页/文章/ 详情

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

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
优秀教师/意见领袖/博士学历/特邀专家
平台推荐
内容稀缺
1月前浏览1082

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 Files\ANSYS Inc\v251\scdm\SpaceClaim.exe

  • 如果想要在命令行中利用SpaceClaim运行脚本,可以使用下面的命令:
"C:\Program Files\ANSYS Inc\v251\scdm\SpaceClaim.exe" /RunScript="d:\cylinder.scscript"
  • 如果想要在脚本运行完毕后自动关闭SpaceClaim,可以使用下面的命令
"C:\Program Files\ANSYS Inc\v251\scdm\SpaceClaim.exe" /RunScript="d:\cylinder.scscript" /ExitAfterScript=True
  • 如果想要在后台启动SpaceClaim并运行脚本,且在脚本运行完毕后自动退出,可以使用下面的命令:
"C:\Program Files\ANSYS Inc\v251\scdm\SpaceClaim.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 Files\ANSYS Inc\v251\scdm\SpaceClaim.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之道
SpaceClaimACTSystem二次开发pythonUM
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-03-14
最近编辑:1月前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2605粉丝 11774文章 796课程 27
点赞
收藏
作者推荐

免费 5.0
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈