当前位置: 首页 > news >正文

Open CASCADE学习|2个TCL命令转C++

1、torus aTorus 10 2

该命令的实现代码为:

static Standard_Integer anasurface (Draw_Interpretor& ,Standard_Integer  n, const char** a)
{if (n < 2) return 1;gp_Ax3 loc;
​Standard_Integer i;
​if (n < 5) {loc = gp_Ax3(gp_Pnt(0,0,0),gp_Dir(0,0,1),gp_Dir(1,0,0));i = 2;}else if (n < 8) {loc = gp_Ax3(gp_Pnt(Draw::Atof(a[2]),Draw::Atof(a[3]),Draw::Atof(a[4])),gp_Dir(0,0,1),gp_Dir(1,0,0));i = 5;}else if (n < 11) {loc = gp_Ax3(gp_Pnt(Draw::Atof(a[2]),Draw::Atof(a[3]),Draw::Atof(a[4])),gp_Dir(Draw::Atof(a[5]),Draw::Atof(a[6]),Draw::Atof(a[7])));i = 8;}else if (n < 14) {loc = gp_Ax3(gp_Pnt(Draw::Atof(a[2]),Draw::Atof(a[3]),Draw::Atof(a[4])),gp_Dir(Draw::Atof(a[5]),Draw::Atof(a[6]),Draw::Atof(a[7])),gp_Dir(Draw::Atof(a[8]),Draw::Atof(a[9]),Draw::Atof(a[10])));i = 11;}elsereturn 1;
​Handle(Geom_Geometry) result;
​if (!strcasecmp(a[0],"plane")) {Handle(Geom_Plane) C = new Geom_Plane(loc);result = C;}else {if (i >= n) return 1;Standard_Real par1 = Draw::Atof(a[i]);if (!strcasecmp(a[0],"cylinder")) {Handle(Geom_CylindricalSurface) C = new Geom_CylindricalSurface(loc,par1);result = C;}else if (!strcasecmp(a[0],"sphere")) {Handle(Geom_SphericalSurface) C = new Geom_SphericalSurface(loc,par1);result = C;}else {if (i+1 >= n) return 1;Standard_Real par2 = Draw::Atof(a[i+1]);if (!strcasecmp(a[0],"cone")) {par1 *= (M_PI / 180.0);Handle(Geom_ConicalSurface) C =new Geom_ConicalSurface(loc,par1,par2);result = C;}else if (!strcasecmp(a[0],"torus")) {Handle(Geom_ToroidalSurface) C =new Geom_ToroidalSurface(loc,par1,par2);result = C;}}    }
​DrawTrSurf::Set(a[1],result);return 0;
}

转化为C++代码:

gp_Ax3 loc = gp_Ax3(gp_Pnt(0, 0, 0), gp_Dir(0, 0, 1), gp_Dir(1, 0, 0));Handle(Geom_ToroidalSurface) aTorus =new Geom_ToroidalSurface(loc, 10, 2);

2、mkedgecurve aHelixEdge 0.01

该命令的实现代码为:

static Standard_Integer mkedgecurve (Draw_Interpretor& ,Standard_Integer n,const char** a)
{
​if (n < 3) return 1;Standard_Real Tolerance = Draw::Atof(a[2]) ;
​TopoDS_Shape S = DBRep::Get(a[1]);if (S.IsNull()) return 1;BRepLib::BuildCurves3d(S,Tolerance) ;return 0 ;
}

转化为C++代码:

BRepLib::BuildCurves3d(aHelixEdge,0.01);

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SolidWorks学习笔记——入门知识2
  • React18原理: Fiber架构下的单线程CPU调度策略
  • Selenium找界面元素
  • Java 数据结构篇-实现二叉搜索树的核心方法
  • Python API的使用简述
  • redmi note 4x(mido) kali nethunter
  • ssh和sftp服务分离
  • JavaScript基础第五天
  • C++初阶:适合新手的手撕vector(模拟实现vector)
  • django安装使用
  • 15000+POC漏洞扫描工具
  • 五分钟用FRP实现win10远程桌面
  • 什么是集群服务器
  • Qt知识点总结目录
  • 单片机学习笔记---串口通信(2)
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • Angular4 模板式表单用法以及验证
  • javascript数组去重/查找/插入/删除
  • MobX
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • node.js
  • webpack4 一点通
  • 理解在java “”i=i++;”所发生的事情
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 如何设计一个微型分布式架构?
  • 深入浏览器事件循环的本质
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 听说你叫Java(二)–Servlet请求
  • 译自由幺半群
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 怎样选择前端框架
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • Spring第一个helloWorld
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • #微信小程序:微信小程序常见的配置传值
  • (06)Hive——正则表达式
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (一)Dubbo快速入门、介绍、使用
  • (转)使用VMware vSphere标准交换机设置网络连接
  • **CI中自动类加载的用法总结
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .net 按比例显示图片的缩略图
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .net6 core Worker Service项目,使用Exchange Web Services (EWS) 分页获取电子邮件收件箱列表,邮件信息字段
  • .NET处理HTTP请求