iCAx开思网

标题: 如何取出多實體零件中單一實體的體積值 [打印本页]

作者: ryouss    时间: 2014-8-6 09:11
标题: 如何取出多實體零件中單一實體的體積值
本帖最后由 gt.adan 于 2014-8-6 13:32 编辑

如圖,在兩個實體零件自訂屬性可以取出球體的體積值嗎?
(取出零件總體積是沒問題)

[attach]1204369[/attach]


该贴已经同步到 ryouss的微博
作者: gt.adan    时间: 2014-8-6 10:28
回梁叔,

在多實體零件中要求取個別實體的體積數據,透過二次開發或許可行。
但是目前沒有直接的方式可以調用。
之前和英雄大有討論過這個問題,暫時的解決方式是使用配置。
作者: ryouss    时间: 2014-8-6 10:45
本帖最后由 ryouss 于 2014-8-6 10:47 编辑
gt.adan 发表于 2014-8-6 10:28
回梁叔,

在多實體零件中要求取個別實體的體積數據,透過二次開發或許可行。

目前只在api找到在組件(裝配體)取出某一零件的體積,
所以如 https://www.icax.org/thread-923937-1-2.html 的例子,
就是在組件上處裡的.有大師前輩知道如何用宏,在多實體零件取出某單一實體的體積,
煩請指導了,謝謝!



作者: gt.adan    时间: 2014-8-6 11:06
ryouss 发表于 2014-8-6 10:45
目前只在api找到在組件(裝配體)取出某一零件的體積,
所以如 https://www.icax.org/thread-923937-1-2.htm ...

那就…有請悶老大出手了~~~

(快逃!等等又被他老人家說我"指定打擊"就不妙了!!!)

作者: Francis    时间: 2014-8-6 12:57
蛋大呀!
https://www.3dportal.cn/discuz/f ... ead&tid=1240250
作者: Francis    时间: 2014-8-6 13:01
補充
mass 改為 volume
作者: ryouss    时间: 2014-8-6 13:07
Francis 发表于 2014-8-6 12:57
蛋大呀!
https://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1240250

非常感謝悶大丟出珍貴資料,
看了有不懂的再請教了!
作者: gt.adan    时间: 2014-8-6 13:10
本帖最后由 gt.adan 于 2014-8-6 13:18 编辑
Francis 发表于 2014-8-6 12:57
蛋大呀!
https://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1240250

悶大…這個帖子…阿丹是記得的…
除了自己東摸西索的搞了配置的做法,也記得您說使用焊件的做法。
是想…能不能有更直觀的做法…例如您擅長的宏…就更方便了呀~~
說穿了…就是…想請您佬寫一個宏…
(別打我!!!!!!逃~~~~)

作者: ryouss    时间: 2014-8-6 13:29
Francis 发表于 2014-8-6 13:01
補充
mass 改為 volume

同丹版主想法一樣,
若是能在零件寫宏的話,是否也能夠指導一下!
(好像要求太多了,真不好意思!)



作者: gt.adan    时间: 2014-8-6 13:30
竟然沒想到先貼文還要求宏…我自己先去罰站了…
補貼悶大的做法…

不妨試下焊件功能
Untitled.gif (321.45 KB, 下载次数: 3)





作者: ryouss    时间: 2014-8-6 13:52
補上在api找到的資料

This example show how to get the mass of the selected component of an assembly.

'---------------------------------------------
'
' Preconditions:

' 1. Specified assembly document exists.

' 2. Open the Immediate window.

' 3. Run the macro.

'

' Postconditions: Mass of the selected component printed to
' Immediate window.

'

'---------------------------------------------

Option Explicit

Sub main()

Dim swApp As SldWorks.SldWorks
Dim swModelDoc As SldWorks.ModelDoc2
Dim comp As Component2
Dim compbody As Variant
Dim bodyInfo As Variant
Dim val As Double
Dim params As Variant
Dim swMass As SldWorks.MassProperty
Dim boolstatus As Boolean
Dim errors As Long
Dim warnings As Long
Set swApp = Application.SldWorks
Set swModelDoc = swApp.OpenDoc6("C:\program files\solidworks corp\solidworks\samples\tutorial\edraw\claw\claw-mechanism.sldasm", swDocASSEMBLY, swOpenDocOptions_Silent, "", errors, warnings)
boolstatus = swModelDoc.Extension.SelectByID2("collar-1@claw-mechanism", "COMPONENT", 0, 0, 0, False, 0, Nothing, swSelectOptionDefault)
Set comp = swModelDoc.SelectionManager.GetSelectedObject6(1, 0)
compbody = comp.GetBodies3(swAllBodies, bodyInfo)
Set swMass = swModelDoc.Extension.CreateMassProperty
boolstatus = swMass.AddBodies((compbody))
swMass.UseSystemUnits = False
val = swMass.mass
Debug.Print "Mass - " & val
val = swMass.Volume
Debug.Print "Volume - " & val
val = swMass.Density
Debug.Print "Density - " & val
val = swMass.SurfaceArea
Debug.Print "Surface area - " & val
params = swMass.CenterOfMass
Debug.Print "Center of mass - X: " & params(0) & " ,Y: " & params(1) & ", and Z: " & params(2)
End Sub

作者: ryouss    时间: 2014-8-6 16:17
本帖最后由 ryouss 于 2014-8-6 16:43 编辑
Francis 发表于 2014-8-6 13:01
補充
mass 改為 volume

還要再請教了,
如圖,原本 "項次1" 是看不到 "屬性" 的,
找到大師的宏執行才顯示,除了用宏取出,沒其他方式可激活嗎?
已解決,謝謝!

[attach]1204474[/attach]


作者: gt.adan    时间: 2014-8-6 16:30
本帖最后由 gt.adan 于 2014-8-6 16:31 编辑

梁叔可否放一個看不見屬性的檔案給阿丹測試一下?
我這邊2012沒問題的,除料清單「更新」後就可以使用了。

[attach]1204476[/attach]
作者: ryouss    时间: 2014-8-6 16:40
gt.adan 发表于 2014-8-6 16:30
梁叔可否放一個看不見屬性的檔案給阿丹測試一下?
我這邊2012沒問題的,除料清單「更新」後就可以使用了。 ...

謝謝丹版主指導,
就是要做一次更新,
之前根本沒研習用到焊件,所以問題特別多!



作者: Francis    时间: 2014-8-6 16:55
本帖最后由 Francis 于 2014-8-6 16:57 编辑

要在"切割清單"的每一個文件夾的加上"體積"屬性, 方法如下:

1. 刪除"切割清單"內所有現有的文件夾.
2. 對著第一個特徵(原點下一個)按右鍵
[attach]1204479[/attach]
3. 加入"體積"屬性(下拉清單有個 volume 的, 不需自行鍵入)
[attach]1204480[/attach]
4. 對著實體文件夾按右鍵點選更新
[attach]1204481[/attach]
5. 所有新建立的切割清單就有體積屬性, 無需逐一手動加上的.

作者: Francis    时间: 2014-8-6 17:08
本帖最后由 Francis 于 2014-8-7 18:55 编辑

要是提取其數據更是便中之便, 註釋鍵入"$PRPWLD:"體積""即可, 然後 copy & paste 到不同的實體, 無需逐一鍵入.
[attach]1204482[/attach]
[attach]1204483[/attach]

可能蛋大又會問悶人"是否經常使用到$PRP語句", 讓悶人無言.
作者: mrdior    时间: 2014-8-6 17:25
顶哦,能再详细点啊
作者: ryouss    时间: 2014-8-6 17:29
又發現個問題

零件屬性的 "值" 好像一定要從 "除料清單屬性" 做好複製過去,
直接打字是不行的,是這樣嗎??

[attach]1204484[/attach]
[attach]1204485[/attach]

作者: gt.adan    时间: 2014-8-6 17:45
本帖最后由 gt.adan 于 2014-8-6 17:46 编辑
ryouss 发表于 2014-8-6 17:29
又發現個問題

零件屬性的 "值" 好像一定要從 "除料清單屬性" 做好複製過去,

不對,請梁叔注意大小寫的問題。

[attach]1204488[/attach]
作者: gt.adan    时间: 2014-8-6 17:59
如果不是有特別要求,或是不在工程圖中調用,直接鍵入也行。
無需在屬性欄位再連結一次。梁叔可見我的屬性欄位是空的。

[attach]1204489[/attach]

作者: ryouss    时间: 2014-8-6 20:38
gt.adan 发表于 2014-8-6 17:59
如果不是有特別要求,或是不在工程圖中調用,直接鍵入也行。
無需在屬性欄位再連結一次。梁叔可見我的屬性 ...

試了,取體積之名稱 Volume 第一個字母一定要大寫,
另如18#的檔案名稱  零件9.SLDPRT ,倒是不重要,把 零件9  改成 零件8 ,或是 SLDPRT 改為小寫都不影響.
再次感謝悶大及丹大的指導,對焊件首次的摸索稍有些認識.



作者: gt.adan    时间: 2014-8-6 20:55
ryouss 发表于 2014-8-6 20:38
試了,取體積之名稱 Volume 第一個字母一定要大寫,
另如18#的檔案名稱  零件9.SLDPRT ,倒是不重要,把 零件 ...

說指導不敢當。多向悶大學習。

作者: ryouss    时间: 2014-8-6 22:33
本帖最后由 ryouss 于 2014-8-6 22:36 编辑

對宏有興趣的話,11#的宏可試試...
就是找到它,才能處理不規則容器


作者: gt.adan    时间: 2014-8-7 18:40
Francis 发表于 2014-8-6 17:08
要是提取其數據更是便中之便, 註釋鍵入"$PRPWLD:"體積""即可, 然後 copy & paste 到不同的實體, 無需注意鍵 ...

悶大,阿丹已經做足被您幹譙的心理準備,要請您開示了…
本來說好不問的,但是想了老半天未果,這問題不問的話我心裡難過呀~~
關於PRPWLD,由於之前在幫助中沒看到過,所以在看了您教程後回頭翻了一下…
這一下…翻了好半天…從2012~2014…怎麼就找不到相關的文章?
上網問了谷老師,查閱了幾篇文章…結果看到以下…

[attach]1204548[/attach]

可能是阿丹找得不夠仔細…文章查得不夠多。
這裡想請教悶大,為何幫助中沒有的功能您會知道得如此之多而且用得好嫻熟的感覺?
是不是有什麼管道或是方法可以得到這些寶貴的資料呢?
阿丹有試過問原廠的工程師…結果幾個比較資淺的連PRPWLD都不知道…><
期待悶大抽空開示一下,謝謝您。





作者: Francis    时间: 2014-8-7 21:47
gt.adan 发表于 2014-8-7 18:40
悶大,阿丹已經做足被您幹譙的心理準備,要請您開示了…
本來說好不問的,但是想了老半天未果,這問題不 ...

說實話, 悶人所用的版次依然只是2008, 新版次的試驗都是在別人公司進行, 有很多新功能只有看沒得用的.

基於種種原因, 不便回答蛋大的提問, 懇請見諒.


作者: gt.adan    时间: 2014-8-7 23:08
Francis 发表于 2014-8-7 21:47
說實話, 悶人所用的版次依然只是2008, 新版次的試驗都是在別人公司進行, 有很多新功能只有看沒得用的.

...

謝謝悶大回覆~

悶大不便回答,那麼阿丹也不追問了~^^
最後一個問題,按悶大所說,這個PRPWLD…是2008甚至更早就有了嗎?!
阿丹用2012以前的版本完全試不出來…
如果這個方便的話,再請悶大告知阿丹,謝謝您。


再次謝謝悶大出手指導,這次的收穫很大!






欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3