依存関係にあるオブジェクトの強引なを削除2013年6月2日 | |
はじめにSalome で、たとえば Box を作り、それをコピーで Translation したあと、もとのオブジェクトがいらなくなった場合、移動したオブジェクトがもとのオブジェクトを参照しているため、ものとオブジェクトを Delete で消すことができない。 このような場合に Python スクリプトでもとのオブジェクトを削除する方法を以下に示す。 注意: この方法を試みてなにか問題が起こっても保障はしません。自己責任で。 バージョンSalome-Meca 2013.1 (Salome 6.6.0) オブジェクトの強引なを削除たとえば Box を作り、それをコピーで Translation する。"Box_1" を削除するには、Python Console でつぎのように入力する。
obj = salome.myStudy.FindObject('Box_1')
import salome.kernel.studyedit as studyedit
se = studyedit.StudyEditor()
se.removeItem(obj, True)
Object Browser で F5 を押す。コピーしたオブジェクトに "<Invalid Reference>" という項目がぶら下がっているので、右クリックで "Delete Invalid Reference" を選ぶ。 オブジェクトの依存関係の強引なを削除もとのオブジェクトを残しつつ、もとのオブジェクトとの依存関係を削除したければ、いったんもとのオブジェクトをその場にコピーしてから削除すればよい。 スクリプトにすると以下のような感じ。
import geompy
def getObject(name):
return salome.myStudy.FindObject(name).GetObject()
def deleteDependency(shape):
shape2 = geompy.MakeTranslation(shape, 0, 0, 0)
id = geompy.addToStudy(shape2, '')
obj = salome.myStudy.FindObjectID(id)
obj.SetAttrString('AttributeName', shape.GetName())
deleteShape(shape)
gg = salome.ImportComponentGUI('GEOM')
gg.createAndDisplayGO(id)
使い方
>>> shape = getObject('Box_1')
>>> deleteDependency(shape)
新しく "Box_1" が作られ、もとのオブジェクトが削除される。 | |
| PENGUINITIS | |