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

iCAx开思网

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

[求助] 关于自动装配中的Default

[复制链接]
11
发表于 2010-11-11 18:33:40 | 只看该作者
呵呵,抄帮助文件的。
有一个问题想请教下hust65,假设:
Top.asm下已经装好了一个A.prt,现在想装入一个B.prt,装配类型是PRO_ASM_CSYS.
我就想用B零件的坐标asm_csys对齐A零件的坐标asm_csys。问题是怎样得到A零件的路径?
听说是遍历,可是就是搞不定
12
发表于 2010-11-11 22:07:03 | 只看该作者
11# hyccai
要得到A零件的路徑是有辦法的
主要在遍尋的函數裡有個參數 幫助文檔沒有作說明
我是在幫助文檔的sample code裡看到的用法
但現在手上沒有資料
過幾天再給你回復
13
发表于 2010-11-11 22:21:19 | 只看该作者
非常感谢hust65
14
发表于 2010-11-14 17:03:28 | 只看该作者
11# hyccai
假設要取得A零件的路徑可以用
ProSolidFeatVisit()
在Asm中,part和subasm都是feature
feature type都是PRO_FEAT_COMPONENT
所以在ProSolidFeatVisit()中可以用filter將part/asm過濾出來

另外ProAsmcomppath裡的ProIdTable就是
PRO_FEAT_COMPONENT的feat id
這樣就能取得A零件的ProAsmcomppath

例如:
ProAsmcomppath comp_path;
ProSolidFeatVisit(TopAsmHandle, act_func, filter_func, &comp_path)
filter_func就不說了
ProError act_func(ProFeature *feature, ProError error, ProAppData appdata)
{
//這邊實作確認feature是A零件

//以下是取得A零件的路徑
  ProAsmcomppath* p_path;
  ProIdTable comp_id_table;

  p_path = (ProAsmcomppath*)appdata;
  comp_id_table[0] = feature->id;
  comp_id_table[1] = -1;
  ProAsmcomppathInit((ProSolid)TopAsm, comp_id_table, 1, path);
....
}

這樣應該就可以了
需注意的如果part在subasm就需要用遞迴ProSolidFeatVist一層一層往下做
15
发表于 2010-11-16 18:51:32 | 只看该作者
递归调用我是明白的,起初总是不明白ProIdTable
原来"ProAsmcomppath裡的ProIdTable就是PRO_FEAT_COMPONENT的feat id"
感觉懂了一点了,呵呵!谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2024-12-23 23:33 , Processed in 0.021048 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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