アクティビティ

  • 福谷勇時 さんは、ブログ「APIに詳しい方、ご協力お願いします。」にコメントしました。 1586 日前
    >ボリュームがあって,コードは読めてないんですが,困られてるのはどこになりますか?④になります。③は提供頂いたマクロを使わせて頂き問題なく使用可能です。 >これを見ると,Assyを上書きはできても新規保存はできない,のかなと思うのですが,そのとおりです。中間ファイル開き何も保存されていない状態から、アセンブリファイルと参照部品を名前変更し新規保存するときにどうするべきか悩んでます。 よろしくお願いします。
  • 西田将也 さんは、ブログ「APIに詳しい方、ご協力お願いします。」にコメントしました。 1586 日前
    ボリュームがあって,コードは読めてないんですが,困られてるのはどこになりますか? > ③既存Assembly+参照Partsファイルを指定フォルダ+自動生成フォルダに保存>...
  • 福谷勇時 さんは、ブログ「APIに詳しい方、ご協力お願いします。」にコメントしました。 1586 日前
    色々とご回答頂き有難う御座います。 現在、ご教示頂いた内容を変数など、作成済みマクロで使えるように変更してます。 Pack and...
  • 福谷勇時 さんは、ブログ記事「APIに詳しい方、ご協力お願いします。」を公表しました。 1586 日前
    ファイル名自動生成API
    コメント
    • 福谷勇時 1577 日前

      先日の投稿ですが、困っている内容が少し違ったので、再度投稿します。

      AssemblyファイルをPartsとして保存するときに「オプション」設定のデフォルトテンプレート(部品)が
      適用されますが、これを指定して適用したい方法が不明です。

      SW標準保存であれば、テンプレート選択ウィンドウが表示され選択可能なので、マクロ記録し試しましたが、
      NewDocumentで指定した部品ファイルは開くが、モデルが保存されないです。

      【SW標準保存記録コードAssemblyファイルをPartsとして保存】

      Dim swApp As Object

      Dim Part As Object
      Dim boolstatus As Boolean
      Dim longstatus As Long, longwarnings As Long

      Sub main()

      Set swApp = Application.SldWorks

      Set Part = swApp.ActiveDoc
      boolstatus = swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swSaveAssemblyAsPartOptions, swSaveAsmAsPartOptions_e.swSaveAsmAsPart_AllComponents)

      ' New Document
      Dim swSheetWidth As Double
      swSheetWidth = 0
      Dim swSheetHeight As Double
      swSheetHeight = 0
      Set Part = swApp.NewDocument("指定テンプレート.prtdot", 0, swSheetWidth, swSheetHeight)
      Dim swPart As PartDoc
      Set swPart = Part
      swApp.ActivateDoc2 "Part1", False, longstatus

      "Part1"は、NewDocument実行した時点で、自動で割付され部品用指定テンプレートが開くが、
      SW終了するまで、NewDocument実行するたび番号積算されるので、何番になるか毎回番号が
      変わるので、実際は指定ができない。次番号が何番になるか確認し数字入れてはみましたが、
      NewDocumentで開いた部品ファイルに保存されません。

      Set Part = swApp.ActiveDoc
      Set Part = swApp.ActiveDoc
      Dim myModelView As Object
      Set myModelView = Part.ActiveView
      myModelView.FrameLeft = 0
      myModelView.FrameTop = 0
      Set myModelView = Part.ActiveView
      myModelView.FrameState = swWindowState_e.swWindowMaximized
      swApp.ActivateDoc2 "テスト用Assemblyモデル.SLDASM", False, longstatus
      Set Part = swApp.ActiveDoc

      ' Save As
      longstatus = Part.SaveAs3("ファイルパス.SLDPRT", 0, 2)
      End Sub

      何か方法あれば、教えて下さい。
      よろしくお願いします。

    • 福谷勇時 1576 日前

      解決しました。

      アセンブリパーツをパーツとして保存する場合は、部品種類ごとに作成してあるテンプレートを選択できるように
      SW標準のテンプレート選択ウィンドウ表示し選択適用できるようにしました。

      参考コード抜粋:
      Dim Ptemp As String

      'SW標準のテンプレート選択ウィンドウ表示
      Ptemp = swApp.GetDocumentTemplate(swDocPART, "", 0, 0#, 0#)

      '部品デフォルトテンプレートを選択テンプレートに設定
      boolstatus = swApp.SetUserPreferenceStringValue(swUserPreferenceStringValue_e.swDefaultTemplatePart, Ptemp)

      【システムオプション】→【デフォルトテンプレート】の設定は、
      「ドキュメントのテンプレートを選択するようプロンプト表示」を選択にして下さい。
      image

    • 西田将也 1575 日前

      解決しました。

      勉強になりました。情報提供ありがとうございます!

  • 西田将也 さんは、ブログ「APIに詳しい方、ご協力お願いします。」にコメントしました。 1586 日前
    > 「構成部品保存」のときの"swExt"は各構成部品ドキュメントのエクステンションに定義されているでしょうか? ぼくも同じ間違いしてました。 部品のModelDocExtentionからSaveAsを使うと swModel = swComp.getModelDoc2swExt =...
  • 新谷淳さんがページ「通知設定を変更するには」を作成しました。 1586 日前
    コメント通知がメールとJUG-RINGのメッセージが両方届いて面倒な場合の設定がわかりにくいので解説します。 まず、下図の「設定」をクリックし、 通知機能をクリック 一番下までスクロールして、コメント通知のEmailとサイト(メッセージ)のどちらかのみチェックを入れて、保存をクリックしてください。    
  • 新谷淳さんがページ「投稿に画像を貼り付けるには」を作成しました。 1586 日前
    まず、貼り付けたい画像を準備して、わかり易い場所に保存します。PNG形式でデスクトップに保存するのがおすすめです。 ファイル名はできるだけ半角英数のみを使ってください。問題ないケースも多いのですが、文字によってエラーになることがあります。 注意:...
  • 新谷淳さんがページ「SWJUG-RINGの使い方」を作成しました。 1586 日前
    SW-JUGRING(このサイト)を使うときに、やり方が分かりにくいところや、知っていると便利な機能を解説します。 書き込むスペースが狭くて編集しにくい時は 投稿に画像を貼り付けるには 通知設定を変更するには
  • 辻 直樹 さんは、ブログ「APIに詳しい方、ご協力お願いします。」にコメントしました。 1587 日前
    コードが抜粋なので定かではありませんが、 「構成部品保存」のときの"swExt"は各構成部品ドキュメントのエクステンションに定義されているでしょうか? もしアセンブリのものだと、アセンブリを部品として保存することになりそうです。 その後の「Assemblyを保存」と同じなので気になりました。   また、リネームと構成部品のSaveAsを両方行っていますが、どちらか一方で良いのではないでしょうか? リネームの場合はアセンブリ保存のSaveAsのオプションで"_SaveRefe...
  • 西田将也 さんは、ブログ「APIに詳しい方、ご協力お願いします。」にコメントしました。 1589 日前
    そういえばリンクしたサンプルコード最後にバグがあってそのままだとアセンブリファイルが保存されないのでご注意ください,> errors = swApp.CopyDocument(source + sourcefile, target + sourcefile, (sourcefiles), (targetfiles), copyopt)第一引数をsource + sourcefile から sourcefile...
  • 西田将也 さんは、ブログ「APIに詳しい方、ご協力お願いします。」にコメントしました。 1589 日前
    たしかにModelDocExtentionのSaveAsメソッドでは,参照先書き換えてくれませんね。SaveAsメソッドのリファレンス Remarksのところに, Do not use ModelDocExtension::SaveAs to copy assemblies, drawings, or parts with in-context references. Instead, use ISldWorks::CopyDocument or...
  • 福谷勇時 さんは、ブログ「APIに詳しい方、ご協力お願いします。」にコメントしました。 1590 日前
    よろしくお願いします。
  • 福谷勇時 さんがこのサイトに参加しました 1590 日前
  • 臼井隆之 さんがこのサイトに参加しました 1591 日前
  • 由本 雅治 さんがこのサイトに参加しました 1594 日前
  • 野洲 拓也 さんがこのサイトに参加しました 1598 日前
  • 鵜飼和三 さんがこのサイトに参加しました 1600 日前
  • 辻 直樹 さんは、議題「 押し出し面の自動認識が行われない。 」に返答しました これってバグじゃないですか?グループ内 1603 日前
    前回のレス、表現がおかしくて誤解を招きそうでしたね。 「輪郭が少ないとき多重を認識しない」ではなく、「輪郭が少ないとき多重だと自動で押し出し領域を決定しない」 「輪郭が多いとき多重でも認識する」ではなく、「輪郭が多いとき多重なのに自動で押し出し領域を決定してしまう」 と言った方が良さそうです。 つまり「多重の場合は明示的にユーザーが指示して下さい」というのが本来の仕様であって、あまり輪郭が多くなると判定に計算の負荷がかかるので、100ヶを境に多重であることのチェックを放棄して負荷を下げて...
  • Hirotoshi Masumizu さんは、議題「 押し出し面の自動認識が行われない。 」に返答しました これってバグじゃないですか?グループ内 1604 日前
    内部で輪郭の数をチェックしているのであれば、チェックを放棄する輪郭数を変更できれば解決できるかもしれませんね。 Optionなどでそういった入力個所がないか、探してみます。 もしご存じであれば、ご教授ください。
  • 辻 直樹 さんは、議題「 押し出し面の自動認識が行われない。 」に返答しました これってバグじゃないですか?グループ内 1605 日前
    この場合、「輪郭が少ないとき多重を認識しない」のをバグとするのか、「輪郭が多いとき多重でも認識する」のをバグとするのかは微妙かもしれません。 多重のスケッチを押し出す場合、独立したソリッドボディが複数できてしまうので、本来は「輪郭の選択」で明示的に指定するのがセオリーということかと思います。 フィーチャーに使うスケッチはなるべく複雑にしない方が良いということもあるので、輪郭の選択が面倒になるほどのスケッチは作らないだろうということでの101ヶなのかも知れませんね。(自動で認識するというよりも...