0
我想從場景中刪除所有重複的對象,我想通過比較所有對象的polycount來找到重複項。刪除重複(相同的polycount)Maxscript
當我找到每個對象的polycount時,我想將所有具有相同polycount的對象組合在一起,並刪除其中一個對象。應該很簡單,我有麻煩建設一個數組與其中所有重複的對象,雖然...
我的代碼不會引發錯誤,但不會將任何對象添加到#(重複)數組。我的代碼確定所有對象的polycount並將其放入objs_info數組中。
-- Remove object duplicates
clearselection()
select geometry
deselect helpers
objs = selection as array
objS_info = #()
objS_info2 = #()
dups = #()
for obj in objs do(
obj_info = #()
obj_dups = #()
ConvertTo obj Editable_Poly
PolyCount_src = polyop.getNumFaces obj
--resetxform obj ; maxOps.CollapseNodeTo obj 1 true --reset Xform + collapse stack
delta_x_src = ((-1 * obj.min.x) + obj.max.x)
delta_z_src = ((-1 * obj.min.z) + obj.max.z)
append obj_info PolyCount_src
delta_ratio_src = delta_x_src/delta_z_src
for i in 1 to objs.count do(
obj_dups = #()
if objs[i] != obj do(
ConvertTo obj Editable_Poly
PolyCount = polyop.getNumFaces obj
--resetxform obj ; maxOps.CollapseNodeTo obj 1 true --reset Xform + collapse stack
delta_x = ((-1 * obj.min.x) + obj.max.x)
delta_z = ((-1 * obj.min.z) + obj.max.z)
delta_ratio = delta_x/delta_z
if(delta_ratio == delta_ratio_src and PolyCount == PolyCount_src) do(
append obj_dups objs[i]
)
)
)
append dups obj_dups
)
format "dups = % \n " obj_dups
任何幫助將不勝感激,謝謝!
非常感謝您的回答!我同意,比較彩車是相當危險的(我沒有去想它讀你的答案之前)。比較頂點count會是一個更好的選擇(因爲頂點數是一個整數值),會嘗試和修改你的腳本來比較objs的頂點數 – Maarten
我設法修改該腳本以這種方式檢查是否polycount和vertcount是相等的:) – Maarten