ACIS-HOOPS造型学习方法(2)

2019-02-15 12:46

6.1 将构件四面体的功能添加到菜单功能中;

6.2 拖拽鼠标,构造四面体动态线框,以表达拖拽的实时性。 具体程序可参考附加工程acispartview.dsw。

参考程序1:

void CSolidHoopsView::OnTetra() { }

HSolidModel* pSolidModel = (HSolidModel*)(m_pHView->GetModel()); if (!pSolidModel)

return ;

pSolidModel->m_bSolidData = true; pSolidModel->m_bSolidModel = true;

pSolidModel->SetBRepGeometry(true);

pSolidModel->SetModelHandedness(HandednessSetLeft); //构造一个四面体

m_positon[0] = new SPAposition(0.0,0.0,0.0); m_positon[1] = new SPAposition(10.0,0.0,0.0); m_positon[2] = new SPAposition(0.0,10.0,0.0); m_positon[3] = new SPAposition(0.0,0.0,10.0); BODY *block;

Tetrahedron(block);

pSolidModel->AddAcisEntity(block);

HC_Open_Segment_By_Key(m_pHView->GetModelKey()); HA_Render_Entity(block);// ha_bridge将ACIS几何体转换为Hoops几何体 HC_Close_Segment(); m_pHView->Update();

参考程序2:

void CSolidHoopsView::OnLButtonDown(UINT nFlags, CPoint point) { CHoopsView::OnLButtonDown(nFlags,point); //判断顶点是否选中,如果选中,记录被选择点的序号

HSelectionSet* sel_set = m_pHView->GetSelection();

const HSelectionItem *selItem=sel_set->GetSelectionItemAt(0);//@zxc if (selItem != NULL) {

HC_KEY hKey=selItem->GetKey(); if (hKey!=NULL) {

char type[MVO_BUFFER_SIZE]; HC_Show_Key_Type(hKey, type); char* pdest;

pdest=strstr(type,\

if (pdest != NULL)

{// AfxMessageBox(_T(\选中的对象是顶点!\

ENTITY*enty=HA_Compute_Entity_Pointer(hKey); VERTEX* vertex=(VERTEX*)enty;

SPAposition pos=vertex->geometry()->coords(); for (int i=0;i<=3;i++) {if (*m_positon[i] == pos) {m_iIndexVertex=i+1;

break;}}}}}}

参考程序3:

void CSolidHoopsView::OnLButtonUp(UINT nFlags, CPoint point)

{ HSolidModel* pSolidModel = (HSolidModel*)(m_pHView->GetModel());

if (!pSolidModel) return ; if (m_iIndexVertex!=0) {

pSolidModel->DeleteAllEntities();

HC_Open_Segment_By_Key(m_pHView->GetSceneKey());

HPoint localPixel,world;

localPixel.Set(point.x,point.y,0.0);

HC_Compute_Coordinates(\m_positon[m_iIndexVertex-1]->set_x(world.x);

m_positon[m_iIndexVertex-1]->set_y(world.y); m_positon[m_iIndexVertex-1]->set_z(world.z); m_iIndexVertex=0;//标示符m_iIndexVertex清零,重新构造四面体后, HC_Close_Segment(); 可对四面体反复拖拽。 BODY *block; Tetrahedron(block);

pSolidModel->AddAcisEntity(block);

HC_Open_Segment_By_Key(m_pHView->GetModelKey()); HC_Insert_Line(0.0,0.0,0.0,20.0,20.0,20.0);

HA_Render_Entity(block); HC_Close_Segment();

m_pHView->Update(); }

CHoopsView::OnLButtonUp(nFlags,point);}

FAQ

1

A: ACIS帮助文档的路径是?

2 3 4

Q: ../ACIS_R15_HLP/ACIS.html。

A: 打开帮助文档后,不知道该从哪里查询?

Q: 一般选择主页面右上角的“C++ Master Index”栏检索,如下图所示。 A: HOOPS帮助文档的路径是? Q: ../Hoops1220/docs/index.html。

A: 打开帮助文档后,不知道该从哪里查询?

Q: Hoops的基本函数都可以在HOOPS/3dGS→Reference Manual→HOOPS/3dGS

Functions→Sorted Alphabetically中检索到。

5 A: 查询函数HC_Open_Segment,检索首字母“H”查不到? Q: 应该查询下划线后的首个字母“O”。 6

A: 如何查询坐标系转换功能?

Q: HOOPS/3dGS→Programming Guide→3.1 Coordinate systems,阅读这部分内容可知,

用函数HC_Compute_Coordinates,可以实现local window、outer window、local pixels、outer pixels、projection、viewpoint、world、camera、object之间的相互转换。 7 8 9

A:如何下载Hoops1220、ACISR15和ACIS_R15_HLP? Q:请联系小组组长或小组其他成员。

A:登录SourceSafe,没有用户名和密码怎么办? Q:联系课题组长申请注册。

A: 创建工程InteSolid时,去掉该工程中的项目bbI2a files和ften files后,编译工程时仍然报错怎么办?

Q:关闭工程InteSolid后,再打开。

10 A:在我的SourceSafe中,为什么总打不开数据库\\\\10.8.21.254\\vss_intesolid$\\? Q:打开数据库时,先要登录到服务器\\\\10.8.21.254,登录时的用户名为guest,密码为welcome。

11 A: 在win32 console控制台下建立了教材13.1中的程序的工程,生成的cube.dbg文件为什么是空的? Q: 该程序中的debug_size函数无法在win32 console Application中运行,应将该工程建立成MFC应用程序。

12 A:教材第13章中的程序,在编译时,找不到如下的数据类型:vector,unit_vector,positon? Q: 这些数据类型都是ACIS的几何元数据类型,相应地改为SPAvector、SPAunit_vector、SPAposition就可以了。也可以添加头文件base.hxx,打开base.hxx可以看到如下的程序: #define vector SPAvector。


ACIS-HOOPS造型学习方法(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第9章:企业合并会计作业题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: