FUSION360フォルダ検索

FUSION360フォルダ検索

Anonymous
適用対象外
1,069件の閲覧回数
3件の返信
メッセージ1/4

FUSION360フォルダ検索

Anonymous
適用対象外

お世話になっております。

FUSION360のフォルダ名で検索したいですが、どうすれば良いですか。

現在検索コンマンドで(添付ファイル)ファイルしか見つかりません。

お手数ですがよろしくお願いいたします。

 

 

 

 

 

0 件のいいね
1,070件の閲覧回数
3件の返信
返信 (3)
メッセージ2/4

kandennti
Mentor
Mentor

tphanさん こんにちは

 

未確認ですが、フォルダ名の検索が出来ない と言う事を前提です。

 

こちらにBrianEkinsさんが作成したスプリクトがあります。

https://forums.autodesk.com/t5/fusion-360-api-and-scripts/getting-a-list-of-all-closed-and-open-docu...

特定のプロジェクト内のフォルダ名・ファイル名をファイルに書き出すものなのです。

(一部修正する必要あり)

少し改良すれば、Fusion360サインインしているデータの全てのプロジェクト名・

フォルダ名・ファイル名をファイルに書き出すものに変更出来そうです。

 

ファイルに書き出せさえすれば、目的のフォルダを探しやすいのでは?と感じています。

時間さえ頂ければ取り組んでみようかと思っていますが、どうでしょうか?

但し、リンク先で教えてもらっている方も

・スプリクト実行中はFusion360のオペレーションが奪われる。

 (2個起動し片側で処理させることが可能な気がします)

・非常に時間がかかる

との記述があり、実際には利用されなかったように感じます。

(確かに遅い…)

メッセージ3/4

Anonymous
適用対象外

さん

回答していただきありがとうございます。

AUTODESKは本格に検索できるように改善してほしいですね。

教えた方法について、できたらチャレンジして報告します。

これからもよろしくお願い致します。

ファンダントー

 

 

0 件のいいね
メッセージ4/4

kandennti
Mentor
Mentor

あまり深く考えずに全プロジェクト・フォルダ・ファイル名をファイルに書き出す

スプリクトです。 万一の事を考え、全てのファイルを閉じる又は保存した状態で

実行することをお勧めします。 もちろん、処理は遅いです。

 

#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