第十八章acis的实例代码.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十八章 ACIS 的实例代码 ? 18.1 用 Scheme 语言生成 ACIS 程序 ? 18.2 用 Windows 控制台环境编译 ACIS 程序 ? 18.3 用 ACIS AppWizard 生成应用程序框架 18.1 用 Scheme 语言生成 ACIS 程序 ? ACIS 从实用角度而言(不准确地说),是 一个大型的专门用于几何造型的类库,而 它的运行环境正如上一章所述,是 Scheme 和 C++ ;本章将就 ACIS 的 Scheme 程序、 C++ 的 Windows 控制台程序和 C++ 的 AppWizard 应用程序,进行实例讲解。 用 Scheme 语言生成 ACIS 程序 ? 本节主要介绍 Scheme 语言的使用规则,简 要讲解其基本概念如表达式、变量、函数、 简单几何造型功能等,并附有可以直接运 行的例程代码。 Scheme 语言基础语法 ? ACIS 中的 Scheme 解释器是用 C++ 设计的, ACIS 中的几何 造型功能通过对标准 Scheme 命令的扩展实现,这些扩展 命令也是用 C++ 设计的,它们支持 ACIS 中的高级造型功能, 如模型着色和零件管理功能。 ? 与 C++ 相比, Scheme 是一种快速程序设计语言,而且 简洁易学。 Scheme 语言的语法规则很少,总结如下: ? 通过交互地调用 Scheme 过程来执行程序; ? Scheme 过程及其参数都被包含在一对圆括号里; ? 圆括号里的部分被称为 Scheme 表达式; ? 表达式中包含过程名称和过程参数,具体格式如下: ? (过程名称〈参数 1 ,参数 2 , … 〉) ? 分号“;”引导的部分为程序注释。 ? (如何运行 ACIS Scheme 解释器,请参看 17.3.1 节) 表达式 ? 由于 Scheme 是一种解释型的程序开发语言,其表达式只能在解释器 中执行。运行 ACIS 的 Scheme AIDE 解释程序后,就可以在它的 “ acis 〉 ” 提示符下输入表达式,在表达式的结束处按回车就可以执行 该表达式。以下是几个典型的算术表达式: ? acis 〉输入:( * 5 6 ) ? 回车输出: 30 ? acis 〉( * 5 6 7 ) ? 210 ? 在 Scheme 的表达式中,操作符(如 * )后面可以跟任意多个参数,但 是其间一定要用‘空格隔开;并且一个表达式里可以包含一个或者 多个表达式,如: ? acis 〉( * ( + 1 2 )( * 5 6 )) ? 90 ? 理论上,表达式之间互相嵌套的层数是没有限制的,程序 员只要匹配好括号就行了。 ? 上面表达式的例子中使用了两个标准的 Scheme 内部过程 进行乘法和加法运算,而 ACIS Scheme 还扩充了 ACIS 造 型器专用的过程,用户可以按照上述标准 Scheme 过程方 法调用这些造型过程,如下面命令可产生立方体: ? acis 〉输入:( solid : block ( position 0 0 0 )( position 10 10 10 )) ? 回车输出: #[entity 1 0] ? 上述命令产生了一个正方体,如图 17.1.1 ,共调用了两个 ACIS Scheme 过程( position 和 solid : block ), #[entity 1 0] 是该正方体的默认名称。 外部描述符 ? Scheme 表达式产生的每个对象都有一个外部 描述符和一个内部描述符。虽然外部描述符 看上去比较简单,它在与用户交互过程中有 重要作用。它会将一个过程的执行结果反馈 给用户,例如我们前面举的一些例子中,如 果表达式的计算结果不被用作其他表达式的 参数,也就是说该表达式未被嵌套在其他表 达式中,则 Scheme 解释器自动将表达式执行 结果的外部描述符输出,对于算术运算来说 其外部描述符只是一些简单的数字,如 30 , 210 , 90 等。 ? ACIS 的对象也具有外部描述符,当一个含有 ACIS 造型功能的过程被调用后,它所产生的 ACIS 对象的描述符就会被解释器输出,其一 般格式如下: ? #[type_of_object 参数 ] ? 下面,我们看一个关于 ACIS 对象的例子: ? ;产生一个 position 对象 ? acis 〉( position 10 , 20 , 30 ) ? #[position 10,20,30] ? 这个 position 对象的外部描述符表示了一个 x=10 , y=20 , z=30 的坐标点。 ? 从 ACIS 的 ENTITY 类派生的对象的外部描述 符与 position 对象的外部描述符类似,稍微复 杂之处就是,这些东西被组织到所谓的

文档评论(0)

jinzhuang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档