tphanさん こんにちは
未確認ですが、フォルダ名の検索が出来ない と言う事を前提です。
こちらにBrianEkinsさんが作成したスプリクトがあります。
特定のプロジェクト内のフォルダ名・ファイル名をファイルに書き出すものなのです。
(一部修正する必要あり)
少し改良すれば、Fusion360サインインしているデータの全てのプロジェクト名・
フォルダ名・ファイル名をファイルに書き出すものに変更出来そうです。
ファイルに書き出せさえすれば、目的のフォルダを探しやすいのでは?と感じています。
時間さえ頂ければ取り組んでみようかと思っていますが、どうでしょうか?
但し、リンク先で教えてもらっている方も
・スプリクト実行中はFusion360のオペレーションが奪われる。
(2個起動し片側で処理させることが可能な気がします)
・非常に時間がかかる
との記述があり、実際には利用されなかったように感じます。
(確かに遅い…)
回答していただきありがとうございます。
AUTODESKは本格に検索できるように改善してほしいですね。
教えた方法について、できたらチャレンジして報告します。
これからもよろしくお願い致します。
ファンダントー
あまり深く考えずに全プロジェクト・フォルダ・ファイル名をファイルに書き出す
スプリクトです。 万一の事を考え、全てのファイルを閉じる又は保存した状態で
実行することをお勧めします。 もちろん、処理は遅いです。
#FusionAPI_python GetDataList Ver0.0.1
#Author-kantoku
#Description-サインインしているID内の全ファイル名の取得・・・遅い!
import adsk.core, adsk.fusion, adsk.cam, traceback
def run(context):
ui = None
try:
app = adsk.core.Application.get()
ui = app.userInterface
#エクスポートファイルパス
path = Get_Filepath(ui)
if path is None:
return
#ファイル名の取得
filenames = ''
project = adsk.core.DataProject.cast(None)
for project in app.data.dataProjects:
results = ''
results = getFiles(project.rootFolder, results, 0)
filenames += results
if len(filenames) < 1:
ui.messageBox('データが見つかりませんでした')
return
#ファイルに書き込み
file = open(path, 'w')
file.write(filenames)
file.close()
ui.messageBox('おしまい')
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
def getFiles(folder, results, depth):
try:
results += '\n' + (' ' * (depth * 4)) + folder.name
f = adsk.core.DataFolder.cast(folder)
file = adsk.core.DataFile.cast(None)
for file in f.dataFiles:
results += '\n' + (' ' * ((depth+1) * 4)) + file.name
for subFolder in f.dataFolders:
results = getFiles(subFolder, results, depth+1)
return results
except:
return False
#ファイルパス
def Get_Filepath(ui):
dlg = ui.createFileDialog()
dlg.title = 'ファイル名のエクスポート'
dlg.isMultiSelectEnabled = False
dlg.filter = 'text(*.txt)'
if dlg.showSave() != adsk.core.DialogResults.DialogOK :
return
return dlg.filename