cad.net 選擇集搞壞CAD的問題
現象
首先這是一段測試代碼,它的內容是隨便畫一個對象,然后調用cad的command將它刪除

可以嘗試一下,這段代碼跑到中間的時候,會彈出“調用的目標發生了異常”的錯誤,然后cad的選擇集就無法使用了。
原因是cad的選擇集不能超過128個,但是可以看到我的代碼里加了dispose釋放了變量,但是仍然不行,c#也沒有提供釋放選擇集的api。
我嘗試使用com接口獲取文檔中的選擇集,發現數量居然是0。
此問題只會在使用 SelectionSet.FromObjectIds 函數時才會出現,使用editor.GetSelection拿到的選擇集不會出現此問題。
并且只有使用editor.Command后才會出現,單純的創建選擇集無論創建多少個也不會出現錯誤,可能是非拖管對象發送到c++端使用后沒有釋放,這很可能是cad的一個bug。
解決方法
無法解決,只能不用。ed.Command的時候不傳選擇集,將id一個一個傳進去也是一樣的

這樣要先構建一個commandList,都添加完之后ToArray轉為數組再傳到editor.Command的參數里
麻煩了那么一點點。

浙公網安備 33010602011771號