仕事のカタマリにようこそ!  [ ログイン | ユーザ登録 ]
フォーラムから検索

機械用3D-CAD SolidWorks非公認のユーザサイトです
 
 
Web katamari.org
仕事のカタマリ
ホーム リンク集 ダウンロード フォーラム(掲示板) FAQ お問い合わせ









フォーラムニュース: 質問、相談カテゴリに「SolidWorks操作方法」に関するフォーラムを追加しました。(2003/11/27)
いらっしゃい、 ゲストさん. まずはこちら→ ログイン または 登録. 2024/05/13 - 06:32:48
ホーム ヘルプ 検索 ログイン 登録

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 寸法書式の一括変更 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: 寸法書式の一括変更  (閲覧数 7438 回)
BECKER
Jr. メンバー
**

オフライン

投稿: 19



I'm a llama!

プロファイルを見る
寸法書式の一括変更
« 投稿日: 2009/12/11 - 09:21:05 »
引用して返信

はじめまして
昨日からマクロをし始めたのですが
図面修正の際に寸法標記を一括に変更しようとしたのですが
他の図面ではそのマクロがうまくいきません。
下記のコードになるのですが、ビューひとつに対し1つの寸法を
選択しているようです。そこで一括で図面上の寸法を選択する
コマンドはあるのでしょうか?

一度 ”RD2@図面ビュー1"の数字のところを変数にしてloopさせて
やろうと思いましたがうまくいきませんでした。

あと、すでにfomatで記載されている注記を削除、もしくは編集しようと
マクロで記録してみましたが記録されないようですができないのでしょうか?

長々とすみませんがお教えください。

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.ClearSelection2 True
'寸法選択(ここで1つ1つ選択)
boolstatus = Part.Extension.SelectByID2("RD2@図面ビュー1","DIMENSION", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("RD1@図面ビュー1", "DIMENSION", 0, 0, 0, True, 0, Nothing, 0)
’寸法書式変更
boolstatus = Part.EditDimensionProperties2(-1, 0.0001, 0, "", "", False, 3, 1, True, -1, -1, "", "", True, "", "", False)
boolstatus = Part.EditDimensionProperties2(-1, 0.0001, 0, "", "", False, 3, 1, True, -1, -1, "", "", True, "", "", False)
Part.ClearSelection2 True
End Sub
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:寸法書式の一括変更
« 返信 #1 投稿日: 2009/12/11 - 12:47:55 »
引用して返信

こんな感じでどうでしょうか?

' ******************************************************************************
' 図面にある全ての寸法設定を一括で変更
' ******************************************************************************

Sub main()
    Dim swApp As SldWorks.SldWorks
    Set swApp = Application.SldWorks
   
    Dim swModelDoc2 As SldWorks.ModelDoc2
    Set swModelDoc2 = swApp.ActiveDoc
   
    Dim swDrawingDoc As SldWorks.DrawingDoc
    Set swDrawingDoc = swModelDoc2
   
    Dim swView As SldWorks.View
    Set swView = swDrawingDoc.GetFirstView
   
    Dim swDisplayDimension As SldWorks.DisplayDimension
    Dim swDimension As SldWorks.Dimension
    Dim swDimensionTolerance As SldWorks.DimensionTolerance
    Dim blnRet As Boolean
   
    ' ビュー全てをループ
    While (Not swView Is Nothing)
        Set swDisplayDimension = swView.GetFirstDisplayDimension5
        ' ビュー内の寸法全てをループ
        While (Not swDisplayDimension Is Nothing)
            Set swDimension = swDisplayDimension.GetDimension
            Set swDimensionTolerance = swDimension.Tolerance
            ' 公差(上下寸法許容差)
            swDimensionTolerance.Type = swTolType_e.swTolBILAT
            blnRet = swDimensionTolerance.SetValues(0#, 0.0001)
            ' 寸法制度
            blnRet = swDisplayDimension.SetPrecision2 _
            ( _
                3, _
                swDimensionPrecisionSettings_e.swPrecisionFollowsDocumentSetting, _
                swDimensionPrecisionSettings_e.swPrecisionFollowsDocumentSetting, _
                swDimensionPrecisionSettings_e.swPrecisionFollowsDocumentSetting _
            )
            ' 矢印の方向
            swDisplayDimension.ArrowSide = swDimensionArrowsSide_e.swDimArrowsOutside
            ' 矢印のスタイル
            blnRet = swDisplayDimension.SetArrowHeadStyle2(True, -1, -1)
            '寸法の接頭のテキスト
            Call swDisplayDimension.SetText(swDimensionTextParts_e.swDimensionTextPrefix, "")
            '寸法の接尾のテキスト
            Call swDisplayDimension.SetText(swDimensionTextParts_e.swDimensionTextSuffix, "")
           
            ' 寸法中央揃え
            swDisplayDimension.CenterText = False
            ' 検査寸法
            swDisplayDimension.Inspection = False
            ' 括弧付
            swDisplayDimension.ShowParenthesis = False
            ' 次の寸法に移動
            Set swDisplayDimension = swDisplayDimension.GetNext5
            swModelDoc2.GraphicsRedraw2
        Wend
        ' 次のビューに移動
        Set swView = swView.GetNextView
    Wend
   
End Sub
議長に報告する   記録済み
BECKER
Jr. メンバー
**

オフライン

投稿: 19



I'm a llama!

プロファイルを見る
Re:寸法書式の一括変更
« 返信 #2 投稿日: 2009/12/11 - 13:51:24 »
引用して返信

早速のコードありがとうございます

トライしてみたところ、よく考えたら
寸法公差がいるところといらないところが
あるので、面倒ですが、もともと公差があるところと
ないところを識別できるのでしょうか?

さらに2単位表示 (上がinchで下がmm)ですが書式のコードは
どうすればいいのでしょうか?

手元に本もなければなにもないので...さらに誰もマクロできる人も
いません。

議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:寸法書式の一括変更
« 返信 #3 投稿日: 2009/12/14 - 09:51:58 »
引用して返信

おはようございます。

引用:
トライしてみたところ、よく考えたら
寸法公差がいるところといらないところが
あるので、面倒ですが、もともと公差があるところと
ないところを識別できるのでしょうか?

識別できますよ!
以下のように、コメント文の上に、「If 〜」と「End If」を入れると公差の識別が出来ます
〜 省略 〜
If swDimensionTolerance.Type = swTolType_e.swTolBILAT Then
' 公差(上下寸法許容差)
〜 省略 〜
End If
' 次の寸法に移動
〜 省略 〜

引用:
さらに2単位表示 (上がinchで下がmm)ですが書式のコードは
どうすればいいのでしょうか?

特定の寸法だけ2単位にしたい?
それとも、上がinchで下がmmと言う設定にしたい?
が、わからないので答えにくい・・・

引用:
手元に本もなければなにもないので...さらに誰もマクロできる人も
いません。

そうですね。マクロといっても、ほとんどプログラミングの領域まで入ってしまいます。
BECKERさんはプログラムの経験がないように思ったので、ここでの回答もどこまで
書いていいのか、少し悩んでいます。
たとえば、公差の識別に関しては、前のコードに書いてある
swDimensionTolerance.Type = swTolType_e.swTolBILAT
をIF文で判断することで可能なのですが、コード全てを書いても、BECKERさんのスキルアップには
つながらないと思ったのです。
マクロ(プログラミング)が今回だけで、「わからないから助けてほしい」ということであれば、
どれだけでもたすける(サンプルコードをあげる)事は出来るのですが、
文面からすると、どうも、これからもがんばって行かれるようなので、
私がどの様にして協力できるかを考えてしまったのです。

現在のレベルにもよりますが、
SolidWorksのマクロやAPIプログラムを勉強するためには、
いろいろと覚えて行くことが必要だと思いますが、
まずは、Excelのマクロを作る練習が良いと思います。
(参考書もたくさんありますから。)
その後、SolidWorksのAPIヘルプとこのサイトのサンプルなどを
参考にしてがんばって行くしかないと思います。
(私も出来るだけ協力します。)
議長に報告する   記録済み
BECKER
Jr. メンバー
**

オフライン

投稿: 19



I'm a llama!

プロファイルを見る
Re:寸法書式の一括変更
« 返信 #4 投稿日: 2009/12/14 - 14:20:20 »
引用して返信

返信ありがとうございます。

寸法の表示の件は添付ファイルを参照してもらったら
わかるかと思います。

マクロを勉強し始めたところなのでちょうどEXCELのマクロ
通信教育で受けるところです。

実際、HELP機能を使えば例文があり、そこを変更すれば
ある程度組めるとふんでいましたが道のりは遠そうですね。

とにかくがんばりたいと思います。
 setumei.JPG
議長に報告する   記録済み

Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:寸法書式の一括変更
« 返信 #5 投稿日: 2009/12/14 - 16:22:26 »
引用して返信

添付ファイルを見て、少し変更してみました!

' ******************************************************************************
' 図面にある全ての寸法設定を一括で変更
' ******************************************************************************

Sub main()
    Dim swApp As SldWorks.SldWorks
    Set swApp = Application.SldWorks
   
    Dim swModelDoc2 As SldWorks.ModelDoc2
    Set swModelDoc2 = swApp.ActiveDoc
   
    Dim swDrawingDoc As SldWorks.DrawingDoc
    Set swDrawingDoc = swModelDoc2
   
    Dim swView As SldWorks.View
    Set swView = swDrawingDoc.GetFirstView
   
    Dim swDisplayDimension As SldWorks.DisplayDimension
    Dim swDimension As SldWorks.Dimension
    Dim swDimensionTolerance As SldWorks.DimensionTolerance
    Dim blnRet As Boolean
   
    ' ドキュメントプロパティ自身で2単位表示にする(寸法単位で2単位表示する場合は不要)
    blnRet = swModelDoc2.SetUserPreferenceToggle(swUserPreferenceToggle_e.swDetailingDualDimensions, True)
   
    ' ビュー全てをループ
    While (Not swView Is Nothing)
        Set swDisplayDimension = swView.GetFirstDisplayDimension5
        ' ビュー内の寸法全てをループ
        While (Not swDisplayDimension Is Nothing)
            Set swDimension = swDisplayDimension.GetDimension
            Set swDimensionTolerance = swDimension.Tolerance
           
            ' 公差(普通許容差)の時だけ処理する
            If swDimensionTolerance.Type = swTolType_e.swTolSYMMETRIC Then
                ' 寸法精度
                blnRet = swDisplayDimension.SetPrecision2 _
                ( _
                    3, _
                    swDimensionPrecisionSettings_e.swPrecisionFollowsDocumentSetting, _
                    swDimensionPrecisionSettings_e.swPrecisionFollowsDocumentSetting, _
                    swDimensionPrecisionSettings_e.swPrecisionFollowsDocumentSetting _
                )
                ' 矢印の方向
                swDisplayDimension.ArrowSide = swDimensionArrowsSide_e.swDimArrowsOutside
                ' 矢印のスタイル
                blnRet = swDisplayDimension.SetArrowHeadStyle2(True, -1, -1)
                '寸法の接頭のテキスト
                Call swDisplayDimension.SetText(swDimensionTextParts_e.swDimensionTextPrefix, "")
                '寸法の接尾のテキスト
                Call swDisplayDimension.SetText(swDimensionTextParts_e.swDimensionTextSuffix, "")
                ' 寸法中央揃え
                swDisplayDimension.CenterText = False
                ' 検査寸法
                swDisplayDimension.Inspection = False
                ' 括弧付
                swDisplayDimension.ShowParenthesis = False
                ' 2単位表示(寸法単位で2単位表示する場合は、コメントをはずす。)
                'Call swDisplayDimension.SetDual(False)
            End If

            ' 次の寸法に移動
            Set swDisplayDimension = swDisplayDimension.GetNext5
            swModelDoc2.GraphicsRedraw2
        Wend
        ' 次のビューに移動
        Set swView = swView.GetNextView
    Wend
   
End Sub
議長に報告する   記録済み
BECKER
Jr. メンバー
**

オフライン

投稿: 19



I'm a llama!

プロファイルを見る
Re:寸法書式の一括変更
« 返信 #6 投稿日: 2009/12/15 - 11:06:08 »
引用して返信

おおお
あと1歩です。
主要寸法公差の桁が2桁になっています。
3桁になったら パーフェクトです。
どこのコードで指定するかわかりませんが

下記のコードのどこかを変更すればいいのでしょうか?
ググッても出てこないのでわからない。

blnRet = swDisplayDimension.SetPrecision2 _
                ( _
                    3, _
                    swDimensionPrecisionSettings_e.swPrecisionFollowsDocumentSetting, _
                    swDimensionPrecisionSettings_e.swPrecisionFollowsDocumentSetting, _
                    swDimensionPrecisionSettings_e.swPrecisionFollowsDocumentSetting _
                )

議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:寸法書式の一括変更
« 返信 #7 投稿日: 2009/12/15 - 12:59:01 »
引用して返信


引用:
あと1歩です。
主要寸法公差の桁が2桁になっています。
3桁になったら パーフェクトです。
どこのコードで指定するかわかりませんが

以下の赤色の部分を3にすると公差の少数点以下の桁数を指定できます。
blnRet = swDisplayDimension.SetPrecision2 _
                ( _
                    3, _
                    swDimensionPrecisionSettings_e.swPrecisionFollowsDocumentSetting, _
                    3, _
                    swDimensionPrecisionSettings_e.swPrecisionFollowsDocumentSetting _
                )

引用:
下記のコードのどこかを変更すればいいのでしょうか?
ググッても出てこないのでわからない。

BECKERさん、SolidWorksのAPIヘルプってご存知ですか?
APIヘルプで「SetPrecision2」を探すと、どのパラメータで何を行っているかがわかると思います。
SolidWorksをインストールしてあるフォルダのapiと言うフォルダに入っています。
(C:Program FilesSolidWorkspisldworksapi.chm)
ただ、標準では英語版なので、SolidWorks JapanのWebから、
テクニカルサポート(右下の方)をクリックして、
ナレッジベースのAPIをクリックして(ログインが必要になります。)
API Helpのダウンロード のページから日本語版をダウンロードできます。
(2009、2010のヘルプはまだ公開されていませんが、マクロのレベルで使用する場合2008のものでも大丈夫です。)
議長に報告する   記録済み
BECKER
Jr. メンバー
**

オフライン

投稿: 19



I'm a llama!

プロファイルを見る
Re:寸法書式の一括変更
« 返信 #8 投稿日: 2009/12/15 - 17:32:11 »
引用して返信

すみません いつもいつも

3桁になりません。
HELPみて、数値を変えてみても変わらない。
もう少しがんばってみます。



retval = DisplayDimension.SetPrecision2 ( Primary, Dual, PrimaryTol, DualTol)



入力:
(long) Primary
寸法値で表示された小数点以下の桁数

入力:
(long) Dual
2単位値で表示された小数点以下の桁数

入力:
(long) PrimaryTol
公差値で表示された小数点以下の桁数

入力:
(long) DualTol
2単位公差値で表示された小数点以下の桁数

出力:
(long*) retval
返り値のステータス(留意点を参照)

議長に報告する   記録済み
BECKER
Jr. メンバー
**

オフライン

投稿: 19



I'm a llama!

プロファイルを見る
Re:寸法書式の一括変更
« 返信 #9 投稿日: 2009/12/16 - 11:07:56 »
引用して返信

どうも原因がわかりました。
主要値がmmの図面だったのでinchの方が3桁にならなかったようです。

となると主要値をinchにする必要があるので下記のコードを
組んでみましたが変更されません。
HELPを見ながら睡魔に襲われながらいろいろ変更してみますが
何か宣言がいるのかどうだか
すみませんが救いの手を


’単位mmをinchにする
  blnRet = swModelDoc2.SetUserPreferenceIntegerValue(swLengthUnit_e.swINCHES, True)

' ドキュメントプロパティ自身で2単位表示にする(寸法単位で2単位表示する場合は不要)
      blnRet = swModelDoc2.SetUserPreferenceToggle(swUserPreferenceToggle_e.swDetailingDualDimensions, True)


’表示位置を上にする
        blnRet = swModelDoc2.SetUserPreferenceToggle(swDetailingDualDimPosition_e.swDualDimensionsOnTop, True)
議長に報告する   記録済み
BECKER
Jr. メンバー
**

オフライン

投稿: 19



I'm a llama!

プロファイルを見る
Re:寸法書式の一括変更
« 返信 #10 投稿日: 2009/12/16 - 12:35:30 »
引用して返信

ついにあったmmからINCHにするコード

と喜んでいたら、そのコードを走らしたあと
今のコードを走らすと2単位表示にはなるけど
どっちもINCH
はあー道のりは遠いです。

ちなみに下記はコードがmmからINCHに変更するコードです。

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
If (swModel.GetUserPreferenceIntegerValue(swUnitsLinear) = swMM) Then
boolstatus = _
swModel.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsLinear, 0, swLengthUnit_e.swINCHES)
Else
boolstatus = _
swModel.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsLinear, 0, swLengthUnit_e.swINCHES)
End If
End Sub
議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:寸法書式の一括変更
« 返信 #11 投稿日: 2009/12/16 - 15:06:47 »
引用して返信

横から失礼します

寸法毎に変えるのでは無くて、図面全体(ドキュメントプロパティ)を変えたいってことですね。
であれば、SetUserPreferenceIntegerValueで可能ですよ。

APIヘルプでModelDoc2::SetUserPreferenceIntegerValueを見て頂ければ、
swUserPreferenceIntegerValue_eのリンクがあるので、そちらを参照すれば
ドキュメントプロパティの項目に対して渡す引数を調べることが出来ます。

retval = ModelDoc2.SetUserPreferenceIntegerValue ( userPreferenceValue, value )
としたときに、

引数 userPreferenceValue , value は、それぞれ以下の様になります。
主要寸法単位(例としてインチ)
swUnitsLinear , swLengthUnit_e.swINCHES
主要寸法小数点以下桁数
swUnitsLinearDecimalPlaces , 0 〜 8
主要寸法交差値小数点以下桁数
swDetailingLinearTolPrecision , 0 〜 8 か -3(寸法値と同じ桁数)

代替寸法単位(例としてmm)
swUnitsDualLinear , swLengthUnit_e.swMM
代替寸法小数点以下桁数
swUnitsDualLinearDecimalPlaces , 0 〜 8
代替寸法交差値小数点以下桁数
swDetailingAltLinearTolPrecision , 0 〜 8 か -3(寸法値と同じ桁数)

2単位表記は、既にMakoronさんのサンプルにあるので、合わせて実行して下さい。

これから新規で作る図面は、ドキュメントプロパティで単位を変更したテンプレートを
用意しておくことをお勧めします。
議長に報告する   記録済み
BECKER
Jr. メンバー
**

オフライン

投稿: 19



I'm a llama!

プロファイルを見る
Re:寸法書式の一括変更
« 返信 #12 投稿日: 2009/12/16 - 16:30:58 »
引用して返信

hisaさん ありがとうございます。

図面の寸法を変更しているのはすでに書き上げられたものを
修正しています。(300枚以上 吐きそうです)

いろんな人が書いているので書き方も設定も違っていて
せっかく書いていただいたコードもプロパティが違って
使えるときと使えないときがあるので困っていました。

今回 いただいたコードでプロパティを設定後、
Makironさんのコードを走らせればどうにかなりそうですね

ありがとうございます。

でもたぶんうまくコードを走らす自信はありませんが

議長に報告する   記録済み
hisa
カタマリの王様!?
*****

オフライン

投稿: 507



PANDA-Z!!

プロファイルを見る WWW
Re:寸法書式の一括変更
« 返信 #13 投稿日: 2009/12/16 - 17:49:15 »
引用して返信

では、ドキュメントプロパティ設定部分の答えを・・・

Code:
Sub main()

    Dim swApp          As SldWorks.SldWorks
    Dim swModel        As SldWorks.ModelDoc2
    Dim blnRet          As Boolean
   
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc

    ' 2単位表示
    blnRet = swModel.SetUserPreferenceToggle(swUserPreferenceToggle_e.swDetailingDualDimensions, True)
    ' 代替寸法を下に
    blnRet = swModel.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swDetailingDualDimPosition, _
                                                  swDetailingDualDimPosition_e.swDualDimensionsOnBottom)
   
    ' 主要寸法単位(例としてインチ)
    blnRet = swModel.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swUnitsLinear, _
                                                  swLengthUnit_e.swINCHES)
    ' 主要寸法小数点以下桁数(例として3桁)
    blnRet = swModel.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swUnitsLinearDecimalPlaces, 3)
    ' 主要寸法交差値小数点以下桁数(例として値と同じ)
    blnRet = swModel.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swDetailingLinearTolPrecision, _
                                                  swDimensionPrecisionSettings_e.swTolerancePrecisionFollowsNominal)
    ' 代替寸法単位(例としてmm)
    blnRet = swModel.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swUnitsDualLinear, _
                                                  swLengthUnit_e.swMM)
    ' 代替寸法小数点以下桁数(例として2桁)
    blnRet = swModel.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swDetailingAltLinearDimPrecision, 2)
    ' 代替寸法交差値小数点以下桁数(例として値と同じ)
    blnRet = swModel.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swDetailingAltLinearTolPrecision, _
                                                  swDimensionPrecisionSettings_e.swTolerancePrecisionFollowsNominal)
 
End Sub


既存の寸法がドキュメントの設定にならっていれば、これだけで既存の寸法も変わると思います
議長に報告する   記録済み
BECKER
Jr. メンバー
**

オフライン

投稿: 19



I'm a llama!

プロファイルを見る
Re:寸法書式の一括変更
« 返信 #14 投稿日: 2009/12/17 - 09:42:06 »
引用して返信

hisaさん ありがとうございます。

しかし、SW2009のバグなのか マクロで指定した下記のコードが
作動しているのに表示が変わらない。
小数点のところはプロパティが変わってないので
Makoronさんのコードでいけたのですが
みなさんの力でここまできたのに
最後の最後でバグなのか..?

SWって面取寸法の代替寸法が入らないのなぜなんでしょうかね
プロパティにもないのであきらめてますが

' 代替寸法を下に
    blnRet = swModel.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swDetailingDualDimPosition, _
                                                  swDetailingDualDimPosition_e.swDualDimensionsOnBottom)

' 主要寸法小数点以下桁数(例として3桁)
    blnRet = swModel.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swUnitsLinearDecimalPlaces, 3)
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:寸法書式の一括変更
« 返信 #15 投稿日: 2009/12/17 - 16:41:57 »
引用して返信


引用:
しかし、SW2009のバグなのか マクロで指定した下記のコードが
作動しているのに表示が変わらない。

関連のありそうな部分があるので確認してみてください。

引用:
' 代替寸法を下に
    blnRet = swModel.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swDetailingDualDimPosition, _
                                                  swDetailingDualDimPosition_e.swDualDimensionsOnBottom)

このコードを実行した後、その図面のドキュメントプロパティの設定は正しく置き換わっていますか?


引用:
' 主要寸法小数点以下桁数(例として3桁)
    blnRet = swModel.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swUnitsLinearDecimalPlaces, 3)

ドキュメントプロパティを3桁としても、寸法の設定が個別に設定してある場合は、寸法の設定が優先されてしまいます。
前に書いたコードで寸法を指定すると、寸法の個別設定になってしまうので、
これを、全てドキュメントプロパティを使用するように、以下のコードに書き直して見てください。
blnRet = swDisplayDimension.SetPrecision2 _
                ( _
                    swDimensionPrecisionSettings_e.swPrecisionFollowsDocumentSetting, _
                    swDimensionPrecisionSettings_e.swPrecisionFollowsDocumentSetting, _
                    swDimensionPrecisionSettings_e.swPrecisionFollowsDocumentSetting, _
                    swDimensionPrecisionSettings_e.swPrecisionFollowsDocumentSetting _
                )
議長に報告する   記録済み
BECKER
Jr. メンバー
**

オフライン

投稿: 19



I'm a llama!

プロファイルを見る
Re:寸法書式の一括変更
« 返信 #16 投稿日: 2009/12/18 - 09:30:53 »
引用して返信

おはようございます。

プロパティは変わっていることを確認しています。
ですから一度プロパティで上を指定してから下指定すれば
代替が下にきます。
 hyouji.JPG
議長に報告する   記録済み

ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 寸法書式の一括変更 前のトピック 次のトピック
ジャンプします: