ACIS SAT IGES ACIS STEP VDAFS CATIA V

  • Slides: 39
Download presentation

ACIS概述 SAT IGES ACIS STEP VDA/FS CATIA V 4 Inter. Op ACIS B -Rep

ACIS概述 SAT IGES ACIS STEP VDA/FS CATIA V 4 Inter. Op ACIS B -Rep 3 D 模型 Pro/E UG Parasolid Solid. Works Inventor 渲染 HOOS

简介:Scheme语言和ACIS scheme 练习:Scheme AIDE基础 (view: dl 0 0 400) (view: gl 400 0 400)

简介:Scheme语言和ACIS scheme 练习:Scheme AIDE基础 (view: dl 0 0 400) (view: gl 400 0 400) (solid: block(position 0 0 0)(position 10 10 10)) (solid: cylinder(position 0 0 0)(position 0 0 20) 5) (map iso (part: views)) (part: save “c: /training. sat”)

简介:Scheme语言和ACIS scheme 练习:Scheme AIDE基础 (part: clear) (part: load “C: /training. sat”) (front) (top) (right)

简介:Scheme语言和ACIS scheme 练习:Scheme AIDE基础 (part: clear) (part: load “C: /training. sat”) (front) (top) (right)

简介:Scheme语言和ACIS scheme Scheme语言 Scm. Obj (command Scm. Obj …) 例(define mylist(list “abc” 1 “xyz”

简介:Scheme语言和ACIS scheme Scheme语言 Scm. Obj (command Scm. Obj …) 例(define mylist(list “abc” 1 “xyz” (+ 1 1)))

简介:Scheme语言和ACIS scheme Scheme扩展: 通过扩展scheme命令可以实现ACIS的功能 Scm. Obj (command Scm. Obj …)

简介:Scheme语言和ACIS scheme Scheme扩展: 通过扩展scheme命令可以实现ACIS的功能 Scm. Obj (command Scm. Obj …)

简介:Scheme语言和ACIS scheme Scheme标准命令 Scheme AIDE C++命令 Defne Map List-ref Length Do Cond Lambda >

简介:Scheme语言和ACIS scheme Scheme标准命令 Scheme AIDE C++命令 Defne Map List-ref Length Do Cond Lambda > < >= <= Not Eq? Solid: block Solid: unite View: dl Entity: debug Sweep: law position gvector transform: rotation face: plane Scheme AIDE Scheme命令 Iso pick-face Front zoom-all Top zoom-window Right pick

ACIS模型表示(B-Rep) 几何(geometry) 拓扑(topology)

ACIS模型表示(B-Rep) 几何(geometry) 拓扑(topology)

练习预备知识 创建一条边(EDGE)和Wire Body • 创建一条边(EDGE) (edge: lineat{position |point|entray}) • 由多条边创建Wire Body (wire-body entity-list)

练习预备知识 创建一条边(EDGE)和Wire Body • 创建一条边(EDGE) (edge: lineat{position |point|entray}) • 由多条边创建Wire Body (wire-body entity-list)

练习预备知识 扫略(sweeping) • 扫略操作方法指的是沿着某条路径拉伸轮廓、边或wire-body,或者将 轮廓绕某个轴旋转来创建solid-body或sheet-body 例) (sweep: law profile (gvector 0 0 3)) (sweep:

练习预备知识 扫略(sweeping) • 扫略操作方法指的是沿着某条路径拉伸轮廓、边或wire-body,或者将 轮廓绕某个轴旋转来创建solid-body或sheet-body 例) (sweep: law profile (gvector 0 0 3)) (sweep: law profile (position 0 0 0) (gvector 0 0 1))

ACIS C++ 应用程序基础知识 初始化 api_start_modeler() api_initialize_<componet> 造型 事件处理(如菜单) 调用造型函数 终止 api_terminate _<componet> api_initialize_modeler() 应用程序

ACIS C++ 应用程序基础知识 初始化 api_start_modeler() api_initialize_<componet> 造型 事件处理(如菜单) 调用造型函数 终止 api_terminate _<componet> api_initialize_modeler() 应用程序

ACIS C++应用程序基础知识 实用类: • SPAposition,SPAvector,SPAunit_vector • SPAposition p 1(0, 0, 0); • SPAposition p

ACIS C++应用程序基础知识 实用类: • SPAposition,SPAvector,SPAunit_vector • SPAposition p 1(0, 0, 0); • SPAposition p 2 = SPAposition(10, 10) • SPAvector vec 1(0, 0, 10); • SPAvector vec 2 = p 1 -p 2; • SPAvector vec 3 = vec 1 * vec 2; //叉乘 • SPAvector vec 4 = vec 1 % vec 2; //点乘 • ACIS坐标系是右手系 HOOPS中缺省的坐标系是左手系,需调整

ACIS C++应用程序基础知识 ACIS API典型结构 outcome api_NAME_function() { API_BEGIN … content… … API_END return result;

ACIS C++应用程序基础知识 ACIS API典型结构 outcome api_NAME_function() { API_BEGIN … content… … API_END return result; }

范例练习:ACIS Scheme 初始化一个零件 删除所有的视图 创建一个dl视图 设置成iso视图 定义点p 1 定义点p 2 定义点p 3 创建并定义EDGE e

范例练习:ACIS Scheme 初始化一个零件 删除所有的视图 创建一个dl视图 设置成iso视图 定义点p 1 定义点p 2 定义点p 3 创建并定义EDGE e 1 创建并定义EDGE e 2 创建并定义EDGE e 3 用e 1, e 2, e 3创建一个Wire. Body 扫略该Wire. Body (part: clear) (map view: delete(part: views)) (view: dl) (iso) (define p 1(position -10 -5 0)) (define p 2(position 10 -5 0)) (define p 3(position 0 10 0)) (define e 1(edge: linear p 1 p 2)) (define e 2(edge: linear p 2 p 3)) (define e 3(edge: linear p 3 p 1)) (define body (wire-body(list e 1 e 2 e 3))) (sweep: law body (gvector 0 0 10))

范例练习:ACIS Scheme #include “ckoutcom. hxx” #include “swp_opts. hxx” #include “sweepapi. hxx” outcome api_make_triangle(BODY*& body)

范例练习:ACIS Scheme #include “ckoutcom. hxx” #include “swp_opts. hxx” #include “sweepapi. hxx” outcome api_make_triangle(BODY*& body) { SPAposition p 1(-10, -5, 0); SPAposition p 2(10, -5, 0); SPAposition p 3(0, 10, 0); EDGE* e 1=NULL; EDGE* e 2=NULL; EDGE* e 3=NULL; BODY* wirebody=NULL; API_BEGIN result = api_curve_line(p 1, p 2, e 1); result = api_curve_line(p 2, p 3, e 2); result = api_curve_line(p 3, p 1, e 3);

范例练习:ACIS Scheme EDGE* edges[3]; edges[0]=e 1; edges[1]=e 2; edges[2]=e 3; result = api_make_ewire(3, edges,

范例练习:ACIS Scheme EDGE* edges[3]; edges[0]=e 1; edges[1]=e 2; edges[2]=e 3; result = api_make_ewire(3, edges, wirebody); check_outcome(result); sweep_options* options = ACIS_NEW sweep_options(); BODY* dmy=NULL; result = api_sweep_with_options(wirebody, SPAvecto(0, 0, 10), options, dmy); check_outcome(result); ACIS_DELETE options; API_END if(result. ok()) body=wirebody; return result; }