ACIS基础培训课程2_第1页
ACIS基础培训课程2_第2页
ACIS基础培训课程2_第3页
ACIS基础培训课程2_第4页
ACIS基础培训课程2_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ACIS基础培训课程安排(第二天),细节:ACISScheme编程,初始化acisinit.scm布尔类型Boolean字符串类型String列表类型List列表操作Listoperation条件语句ConditionalStatement循环语句IterationStatement,初始化:acisinit.scm,Scheme程序运行时首先读acisinit.scm文件,然后执行该文件中的配置。由于该文件中需要调用其他相关文件,如果这些相关文件在其定义的路径“load-path”中没有找到,那么应用程序将返回错误环境变量“A3DT”和“ARCH”需要事先定义Acisinit.scm允许定义和执行指定的命令,布尔类型:Boolean,Scheme提供特定的符号来表示布尔值#t-true#f-false可以用在条件语句或循环语句中,字符串类型:String,字符串类型(String)常量用双引号包含“sampletext”换码符是右斜杠“”“C:testsample.sat”所有的路径都用左斜杠来表示,从而支持Windows和Unix,列表类型:List,(list)创建一个列表对象acis(list“abc”123(and#t#f)(“abc”123#f)Scheme列表对象包括Scheme对象,列表操作(ListOperation),(car)返回列表中的第一个Scheme对象acis(definemylist(list“abc”123#t#f)mylistacis(carmylist)“abc”(cdr)返回列表中除第一个外其余Scheme对象acis(definemylist(list“abc”123#t#f)mylistacis(cdrmylist)(123#t#f)car和cdr也可以结合使用,列表操作(ListOperation),(length)得到列表中元素的个数acis(length(list“abc”123“xyz”567)4(list-ref)返回指定序号的元素(从“0”开始)acis(definemylist(list“abc”123“xyz”567)mylistacis(list-refmylist0)“abc”acis(list-refmylist2)“xyz”,条件语句(Conditionalstatement),(cond)条件语句(cond(conditioncommand)(conditioncommand)(elsecommand)条件运算符(或命令)=,=negative?positive?even?odd?zero?not示例(defineA10)(cond(=A10)(print“A=10”)(else(print“A!=10”),Do循环语句,(do)循环语句示例(do(i0(+I1)(i9)“finished”)(printi)(print(*ii),有用的ACISScheme,删除PART中特定的元素(entity:delete(filter:apply(filter:type“edge?”)(part:entities)设置视图Camere的目标点位置(view:set-target(c)(view:set-target(e),练习:CMN-01.scm,;CMN-01(view:dl)(iso)(defineblk(solid:block(position-50-10-10)(position501010)(definecpyblk(entity:copyblk)(entity:transformcpyblk(transform:rotation(position000)(gvector001)45),练习:CMN-02.scm,;CMN-02(view:dl)(iso)(definep1(position000)(do(i0(+i10)(=i100)(begin(position:set-x!p1i)(solid:spherep15)(iso)(zoom-all),练习:CMN-03.scm,;CMN-03(view:dl)(iso)(defineblk(solid:block(position-25-25-25)(position252525)(zoom-all)(defineedg(pick-edge)(definep1(curve:start-posedg)(definep2(curve:end-posedg)(definerad(/(curve:lengthedg)2)(defiencyl(solid:cylinderp1p2rad)(zoom-all),练习:CMN-04.scm,;CMN-04(maview:delete(part:views)(part:clear)(view:dl)(definewire(wire-body:points(list(position-30100)(position-30-100)(position0-200)(position0200)(position-30100)(definesld(sweep:lawwire(gvector0010)(iso),练习:CMN-05.scm,;CMN-05(maview:delete(part:views)(part:clear)(view:dl)(definewire(wire-body:points(list(edge:circularposition(000)20)(definemyopt(sweep:options“draft_angle”-20)(definesld(sweep:lawwire(gvector0020)myopt)(iso),细节:ACISWin32控制台应用程序,ACIS_NEW,ACIS_DELETE“outcome”类获取出错信息,ACIS_NEW和ACIS_DELETE,ACIS_NEW和ACIS_DELETE宏可以提高平台之间的兼容性和ACIS的内存管理机制几何提高了性能跟踪内存分配和释放可以监测内存泄漏当用ACIS_NEW创建的简单数据类型(如枚举,结构和矩阵等)在用ACIS_DELETE进行内存释放时需要使用STD_CAST来修饰,“outcome”类,ACISAPI返回“outcome”类型的对象“outcome”类包含了下列信息API调用的结果,成功/失败历史信息-用于UNDO/REDO操作在API_BEGIN宏中,定义了”outcome”类型的变量result在API_END宏中,检查result,通常用到的成员函数outcome:ok()outcome:error_number()outcome:bb()/公共板,获取出错消息,获取出错消息的函数find_err_mess(),outcomeresult;result=api_xxxxxx();if(!result.ok()constchar*text=find_err_mess(result.error_number();printf(text);,练习:FromSchemetoC+,创建一个新的Win32ConsoleApplication(工程名称:Gear32)参考Scheme联系中如何创建齿轮的程序,新建一个cxx文件,并在其中实现创建齿轮的API函数api_make_gear(BODY*elist.add(ENTITY*);得到ENTITY*用重载操作符,就像和使用数组一样方便ENTITY_LISTelist;result=api_get_edges(pBody,elist);EDGE*myedge=(EDGE*)elist0;使用索引ENTITY_LISTelist;result=api_get_edges(pBody,elist);elist.init();EDGE*myedge=(EDGE*)elist.next();,ENTITY_LIST类,remove(ENTITY*)只是将之标记为Tombstonecount()和iteration_count()count()返回列表中包括标记了Tombstone的元素个数iteration_count()不包括那些标记了Tombstone的元素add(ENTITY*)如果是新添加,返回添加为止的索引编号如果ENTITY_LIST中已存在该ENTITY,则返回该ENTITY在ENTITY_LIST中的位置add(ENTITY*,FALSE)不检查该E

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论