iCAx开思工具箱

标题: 关于自动装配中的Default [打印本页]

作者: hyccai    时间: 2010-11-2 19:55
标题: 关于自动装配中的Default
如果零件按默认的方式装配,组件和零件的装配参照应该什么设置
ProSelectionAlloc()的第二个参数应该是什么,坐标原点?怎样得到?
作者: hyccai    时间: 2010-11-2 22:51
期待中......
作者: hust65    时间: 2010-11-3 08:31
1#  
記得第二個參數 ProModelitem就是零件的ProSolid(可以是ProPart或ProAssembly)
用ProMdlToModelitem轉換成ProModelitem
至於座標你知道第一個參數 ProAsmcomppath後就可以用ProAsmcomppathTrfGet取得ProMatrix作座標轉換
作者: hyccai    时间: 2010-11-3 22:25
不是很明白,能不能给段核心代码参考下,
装配类型是DEFAULT
作者: hust65    时间: 2010-11-4 11:01
抱歉,我手上的code都算是公司資產
散佈出去算是犯法的(即使是一小段看起來很簡單)
你要不要去找找看Toolkit上的sample code
有問題再來討論
作者: 236758379    时间: 2010-11-4 15:25
请问hust65是专门做ProE二次开发么?能不能向你请教几个问题? 5#  
作者: hust65    时间: 2010-11-4 18:20
6#  
算是做ProE二次開發,但還是個生手
有問題可以提出來討論
作者: wenboy97    时间: 2010-11-9 11:40
楼主继续呀 我想向你好好学习
作者: hyccai    时间: 2010-11-10 21:01
这几天忙,终于搞定了,是建立元素树的方法完成的
作者: hust65    时间: 2010-11-11 08:21
9#  
樓主很厲害耶
記得當初我搞元素樹花了不少的時間
作者: hyccai    时间: 2010-11-11 18:33
呵呵,抄帮助文件的。
有一个问题想请教下hust65,假设:
Top.asm下已经装好了一个A.prt,现在想装入一个B.prt,装配类型是PRO_ASM_CSYS.
我就想用B零件的坐标asm_csys对齐A零件的坐标asm_csys。问题是怎样得到A零件的路径?
听说是遍历,可是就是搞不定
作者: hust65    时间: 2010-11-11 22:07
11#  
要得到A零件的路徑是有辦法的
主要在遍尋的函數裡有個參數 幫助文檔沒有作說明
我是在幫助文檔的sample code裡看到的用法
但現在手上沒有資料
過幾天再給你回復
作者: hyccai    时间: 2010-11-11 22:21
非常感谢hust65
作者: hust65    时间: 2010-11-14 17:03
11#  
假設要取得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一層一層往下做
作者: hyccai    时间: 2010-11-16 18:51
递归调用我是明白的,起初总是不明白ProIdTable
原来"ProAsmcomppath裡的ProIdTable就是PRO_FEAT_COMPONENT的feat id"
感觉懂了一点了,呵呵!谢谢!




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3