Re: 寸法のフレーム XJ - 2009/01/22(Thu) 09:02 No.5268
遅レスなので解決済みだと思いますが
標準のスタイル/長さ・距離寸法/Default/値/垂直オフセット です。
Re: 寸法のフレーム ホロ - 2009/01/22(Thu) 10:56 No.5269
XJさん
返信ありがとうございます。
私の書き方がわかりにくくて申し訳ないのですが、垂直オフセットの距離を既存の設定のままで、フレームの高さ(寸法からの縦のオフセット距離)だけを修正したいのです。
いろいろこのあと調べてはいるのですが、どうも無理みたいですね。。。
Re: 寸法のフレーム XJ - 2009/01/22(Thu) 14:23 No.5270
あ、やはりそうですか。それなら確かにニーズはありますよね。
私の回りでも昔話が出ました。
当時はあまり調べもせず「無理」で片付けてしまいました(笑)
関連しそうな箇所を見てみましたがそれらしいパラメータは難しそうですね。
「フレーム作成時はオフセットしたい」なのでフレーム関係のパラメータに依存。
しかしフレームのパラメータには寸法線からの距離は無い。
これはテキストなどもフレームで囲めるからかな?
では作成時にと言う制約は置いておいて楽して変える。と考えて、
フレームを使用した寸法が検索などで拾えれば。。。無理。。。
なんとか探し出せれば一括でプロパティ変更できるのに。。。厳しいですかね〜。。。(><)
Re: 寸法のフレーム emily - 2009/01/28(Wed) 11:58 No.5280
> では作成時にと言う制約は置いておいて楽して変える。と考えて、
> フレームを使用した寸法が検索などで拾えれば。。。
ですが、マクロで結構いけます
次のサンプルは、フレームの付いてない寸法線を複数事前選択しておいて、マクロを実行して下さい。すると、長方形のフレームが各寸法値に付いて、選択されたままになります。
「フレームを使用した寸法が拾えた」ことになります
私は、その先に、どうやって「楽して変える」のか試したけど判らないので・・・教えて下さいませ(^_-)
Sub CATMain()
Dim InputDocType(0)
InputDocType(0) = "DrawingDimension" ' "AnyObject"
Set ActiveDoc = CATIA.ActiveDocument
Set ActDocSel = ActiveDoc.Selection
i = ActDocSel.Count
if i = 0 then exit sub
Result = ActDocSel.SelectElement2(InputDocType, "Select", True )
If Result = "Cancel" Then Exit sub
ii=1
Do while ii <= i
set obj = ActDocSel.Item(ii).value
msgbox "Object Name:" & obj.name
obj.ValueFrame = catFraRectangle
ii = ii+1
' exit sub
Loop
End Sub
Re: 寸法のフレーム XJ - 2009/02/10(Tue) 09:53 No.5312
emilyさん
すみません最近見ていなかったもので返信遅くなりました。
マクロありがとうございます。
このマクロは寸法を事前選択するのでしょうか?
要件が「フレーム寸法作成時にオフセットしたい」だったので
上記が満たせないため 「数あるフレーム寸法を簡単に選択できれば一括でプロパティ修正できる」かなと思っていました。
マクロでフレーム付き寸法だけ見つけることができれば、、
+寸法プロパティの値のオフセットも変更できれば、、
この2件が可能になれば標準設定が無くても容易に変更できるかな〜と思っていました。
でもマクロってすごいですね。マクロができる人羨ましいです(><
Re: 寸法のフレーム emily - 2009/02/12(Thu) 13:39 No.5321
こんちは〜
>このマクロは寸法を事前選択するのでしょうか?
そうです。「フレーム寸法作成時にオフセットしたい」だから、フレームのない寸法を事前選択したらどうかな・・という発想でした。(なら、どうせ手動でできるから無意味でしたネ、・・後で気付いたのですが)
マクロの、「寸法プロパティの値のオフセット」は見つからなかったので、
四角で適当に選んだ色々な要素から、「数あるフレーム寸法を一発で選択する」マクロにアレンジしてみました
Sub CATMain()
Dim InputDocType(0)
InputDocType(0) = "AnyObject" ' "DrawingDimension"
Set ActiveDoc = CATIA.ActiveDocument
Set ActDocSel = ActiveDoc.Selection
Result = ActDocSel.SelectElement2(InputDocType, "Select", True )
If Result = "Cancel" Then Exit sub
i = ActDocSel.Count
if i = 0 then exit sub
For ii = i To 1 Step -1
set obj = ActDocSel.Item(ii).value
msgbox "Object Name:" & obj.name & "Type:" & typename(obj)
If typename(obj) = "DrawingDimension" Then
If obj.ValueFrame = catFraRectangle then
Else
ActDocSel.Remove2(ii)
End If
Else
ActDocSel.Remove2(ii)
End If
Next
End Sub
注:msgbox が毎回でるので、初めは10要素くらいで確認すること
(プロパティで手動修正するのが、判ったので収穫でした
Re: 寸法のフレーム XJ - 2009/02/13(Fri) 10:00 No.5330
こんにちわ。
これ良いですね!
ホロさんの質問でしたが私が活用しちゃって良いですか?(^^;
解らないなりにマクロいじって全ての寸法を自動選択後に
このマクロを実行させてフレーム寸法を選択。
そしてプロパティで一括で修正すれば
特A0図面中にあるフレーム寸法の修正で考えると
大変な効果が期待できそうです。
Re: 寸法のフレーム XJ - 2009/02/13(Fri) 10:12 No.5331
マクロの記録から作ってみました。
これでフレーム寸法を作る時に毎回 値タブ開いてオフセットする手間が無くなり
図面作成後にまとめて一括修正できますね。
注意点としては値をオフセットするためのスペースを予めとっておく事でしょうか?
昔課題だったものがここにきて解決するとは。。。ありがとうございました。
Sub CATMain()
Dim InputDocType(0)
Dim drawingDocument1 As DrawingDocument
Dim selection1 As Selection
'ファイル内の全てのシートから寸法を選択する。
Set drawingDocument1 = CATIA.ActiveDocument
Set selection1 = drawingDocument1.Selection
selection1.Search "CATDrwSearch.DrwDimension,all"
'長方形フレームの寸法のみ選択する。
InputDocType(0) = "AnyObject" ' "DrawingDimension"
Set ActiveDoc = CATIA.ActiveDocument
Set ActDocSel = ActiveDoc.Selection
Result = ActDocSel.SelectElement2(InputDocType, "Select", True)
If Result = "Cancel" Then Exit Sub
i = ActDocSel.Count
If i = 0 Then Exit Sub
For ii = i To 1 Step -1
Set obj = ActDocSel.Item(ii).Value
If TypeName(obj) = "DrawingDimension" Then
If obj.ValueFrame = catFraRectangle Then
Else
ActDocSel.Remove2 (ii)
End If
Else
ActDocSel.Remove2 (ii)
End If
Next
End Sub
Re: 寸法のフレーム ホロ - 2009/02/16(Mon) 16:17 No.5334
ずいぶん返信が遅くなりました。
マクロで対応できるんですねぇ・・・私は勉強し始めたばかりだから熟読しないと!
で、本機能についてですが、機能改善出しちゃいました^^;
やっぱり作成時に寸法につくフレームが寸法線に重なるとかありえないじゃないですかー
しかも、寸法線からオフセットすれば避けられるでしょ・・・って、なんか「線が印刷されないなら書けばいいじゃないか」ってそんな話のようなw
というわけで、結果わかりましたら報告します〜