找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 19896|回复: 12
打印 上一主题 下一主题

[求助] 工程图的矩阵转换

[复制链接]
跳转到指定楼层
1
发表于 2011-5-22 20:13:29 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
学到了工程图,建立一般视图的那个矩阵是怎样转换过来的,
对这个矩阵还是一点都不懂,例子也看了,谁能大概说说下?
先谢了
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
13
发表于 2011-6-2 13:31:23 | 只看该作者
找到错在哪了。
12
发表于 2011-6-1 12:26:27 | 只看该作者
11# hust65 谢谢,论坛上的段代码,能不能帮看下错在哪
int UsrCreateSheet()
{   
ProError status;
    ProDrawing drawing;
    int sheet;
    ProSolid solid;
    ProVector pos,outpos;
    ProView view, pview;
    ProVector outline[2];
    ProMatrix matrix,inv_matrix,tem_matrix;
ProName   w_size;
ProMdlType type = PRO_PART;
wchar_t   wname[PRO_LINE_SIZE];
//char fname[30] = "sheets.txt";
    //FILE *fp=fopen(fname, "w");
/*--------------------------------------------------------------------*\     
Create a new sheet and make it current
\*--------------------------------------------------------------------*/
    status = ProMdlCurrentGet((ProMdl)&drawing);
    ProDrawingSheetCreate(drawing, &sheet);
    ProDrawingCurrentSheetSet(drawing, sheet);
/*--------------------------------------------------------------------*\     
Add a solid to the drawing
\*--------------------------------------------------------------------*/     
    ProStringToWstring(wname,"D:\\debuggingprogram\\cycs\\chabei.prt");
    ProMdlRetrieve(wname,type,(ProMdl*)&solid);
    ProDrawingSolidAdd(drawing, solid);
/*--------------------------------------------------------------------*\
Create a general view from the Z axis direction
\*--------------------------------------------------------------------*/
    ProUtilMatrixCopy(NULL, matrix);
    pos[0] = 200.0;
    pos[1] = 600.0;
    pos[2] = 0.0;

ProDrawingSheetTrfGet (drawing, 1, w_size, matrix);
ProUtilMatrixInvert(matrix,inv_matrix);
    ProUtilPointTrans(inv_matrix,pos,outpos);
ProPntTrfEval (pos, inv_matrix, outpos);
//我发现下面的status返回PRO_TK_GENERAL_ERROR,但是不知道是错在哪了
    status=ProDrawingGeneralviewCreate(drawing, solid, sheet, PRO_B_FALSE,
                outpos, 0.5, matrix, &view);

/*--------------------------------------------------------------------*\     
Get the position and size of the new view
\*--------------------------------------------------------------------*/
   ProDrawingViewOutlineGet(drawing, view, outline);
/*--------------------------------------------------------------------*\     
Create a projected view to the right of the general view
\*--------------------------------------------------------------------*/
    pos[0] = outline[1][0] + (outline[1][0] - outline[0][0]);
    pos[1] = (outline[0][1] + outline[1][1]) / 2.0;
    pos[2] = 0.0;
    ProDrawingProjectedviewCreate(drawing, view, PRO_B_FALSE, pos,
           &pview);
/*--------------------------------------------------------------------*\     
Create a projected view below the general view
\*--------------------------------------------------------------------*/
    pos[0] = (outline[0][0] + outline[1][0]) / 2.0;
    pos[1] = outline[0][1] - (outline[1][1] - outline[0][1]);
    ProDrawingProjectedviewCreate(drawing, view, PRO_B_FALSE, pos,
           &pview);
    return(1);
}

本帖最后由 hyccai 于 2011-6-1 12:28 编辑
11
发表于 2011-5-30 15:06:46 | 只看该作者
10# hyccai

好像在裝配件下沒有各零件的矩陣關係
只能用 ProAsmcomppathTrfGet取得零件與裝配件的矩陣關係
在自己去換算了
10
发表于 2011-5-27 10:17:20 | 只看该作者
应该是这样子问,假设装配模式下,A,PRT的坐标a_csys相对于B.PRT的坐标到底平移/旋转了多少,
应该怎样得到
9
发表于 2011-5-27 08:07:07 | 只看该作者
谢谢!开始有点云里雾里。假设得到了一个坐标下点的值,那么怎样转换成另一坐标下的值。
8
发表于 2011-5-26 09:33:52 | 只看该作者
hyccai 发表于 2011-5-25 08:20
昨晚浏览了下传说中的那本书,太难了,一个子也看不明白,想问个比较直接的问题,
假设我以坐标系来定视角,那么那个矩阵是怎样得到,思路应该是怎样子?


矩陣轉換就是兩個座標軸的轉換
假設第一個座標軸固定
那ProMatrix 的 4x4矩陣裡前面3x3可以想成兩個座標軸在同一個原點,第二個座標軸對第一個座標軸的旋轉關係
下面[4][1]、[4][2]、[4][3]的值就是第二個座標軸對第一個座標軸的平移量
[4][4]就是對第一個座標軸的比例縮放值

如此,空間中兩個座標軸的座標值就可以透過矩陣彼此轉換
7
发表于 2011-5-25 08:20:52 | 只看该作者
昨晚浏览了下传说中的那本书,太难了,一个子也看不明白,想问个比较直接的问题,
假设我以坐标系来定视角,那么那个矩阵是怎样得到,思路应该是怎样子?
6
发表于 2011-5-24 10:53:25 | 只看该作者
谢谢几位,我确实是对矩阵一点都不懂,我想我还是去看下计算机图形学再说吧
5
发表于 2011-5-24 09:45:13 | 只看该作者
1# hyccai
如果你是對矩陣不懂,有時間可以去找本computer graphic或OpenGL的書來看看,
裡面都會介紹矩陣變換的原理
多多少少會有一些幫助
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-5-7 21:27 , Processed in 0.024403 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

快速回复 返回顶部 返回列表