在一般的電腦中,OpenSCAD 可以利用 -o xxx.png ,來輸出模型的預覽圖片,但是相同的指令在 Google Colab 中卻會出現類似這樣的錯誤訊息:
Compiling design (CSG Products normalization)...
Normalized CSG tree has 102 elements
Unable to open a connection to the X server.
DISPLAY=
Can't create OpenGL OffscreenView. Code: -1.
然後圖片並沒有輸出任何內容。
主要的原因是 OpenSCAD 輸出圖片時,需要有一個「顯示器」,但它在 Colab 這種遠端的虛擬機環境中並找不到,就出現錯誤訊息了。
沒關係,既然是虛擬機,那就安裝 Xvfb 和 pyvirtualdisplay,來一個虛擬的顯示器吧!
在安裝完 OpenSCAD 後,順便加上這樣的指令,來安裝 Xvfb 和 pyvirtualdisplay:
if not os.path.exists('/usr/bin/Xvfb') :
print('安裝 xvfb ...')
!apt-get -qq install xvfb 2>/dev/null >/dev/null
try: from pyvirtualdisplay import Display
except:
print('安裝 pyvirtualdisplay ...')
!pip -q install pyvirtualdisplay
要啟用虛擬顯示器就加上這兩行:
from pyvirtualdisplay import Display
Display().start()
有了 Xvfb + pyvirtualdisplay 助攻,就可以在 Colab 中,順利地讓 OpenSCAD 輸出圖片了。
沒有留言:
張貼留言