Civil3D DynamoのPython Scriptでエラーが出る
検索して拾ってきた、DynamoのPython Script。
実行してエラーでると、泣いちゃいますよね??
警告:TypeError : No method matches given arguments for OnExit: (<class 'Autodesk.AutoCAD.ApplicationServices.DocumentLock'>, <class 'type'>, <class 'TypeError'>, <class 'traceback'>) [' File "<string>", line 56, in <module>\n', ' File "<string>", line 52, in add_xref\n']
こんなエラーがでてきて、「おいおい、全然意味わからん」ってなる。
試しに2021で実行すると、ちゃんと動くのです。
でも、私は2022で実行したいの!!!
おそらくPythonのバージョンがUPしたことによるもので、本当はちゃんと直せるのだろうけど、私にそんなスキルはなく。
そしたら、神がいました!
前バージョンのPythonを使う方法らしい。
# Load the Python Standard and DesignScript Libraries
# import sys
import clr
# Add Assemblies for AutoCAD and Civil3D
clr.AddReference('AcMgd')
clr.AddReference('AcCoreMgd')
clr.AddReference('AcDbMgd')
clr.AddReference('AecBaseMgd')
clr.AddReference('AecPropDataMgd')
clr.AddReference('AeccDbMgd')
# Add standard Python references
import sys
sys.path.append('C:\Program Files (x86)\IronPython 2.7\Lib')
# Create an alias to the Autodesk.AutoCAD.ApplicationServices.Application class
import Autodesk.AutoCAD.ApplicationServices.Application as acapp
# Import references from AutoCAD
from Autodesk.AutoCAD.Runtime import *
from Autodesk.AutoCAD.ApplicationServices import *
from Autodesk.AutoCAD.EditorInput import *
from Autodesk.AutoCAD.DatabaseServices import *
from Autodesk.AutoCAD.Geometry import *
# Import references from Civil3D
from Autodesk.Civil.ApplicationServices import *
from Autodesk.Civil.DatabaseServices import *
# The inputs to this node will be stored as a list in the IN variables.
dataEnteringNode = IN
adoc = Application.DocumentManager.MdiActiveDocument
editor = adoc.Editor
Python Scriptのノードを作った時の、上の方だけ、ちょこっと変更。
「import sys」を削除(上のコードではコメントアウトしてます)
「clr.AddReference('AeccDbMgd')」
「from Autodesk.AutoCAD.Runtime import *」
の間に以下のコードを入れる。
# Add standard Python references
import sys
sys.path.append('C:\Program Files (x86)\IronPython 2.7\Lib')
# Create an alias to the Autodesk.AutoCAD.ApplicationServices.Application class
import Autodesk.AutoCAD.ApplicationServices.Application as acapp
3.実行は「IronPython2」にする。
ありがとう!ありがとう、神!
私の作業がはかどります!
この記事が気に入ったらサポートをしてみませんか?