寸法のフレーム ホロ - 2009/01/08(Thu) 09:39 No.5219 | |
返信
|
修正・削除
|
|
あけましておめでとうございます。(というにはもう遅いかな
質問させてください。 Drawingの寸法について、画像のようにフレームをつけたときに寸法線と重なってしまうのですが、 重ならないようにフレームの高さを修正することは可能でしょうか? 今は寸法線からのオフセットで対応していますが、できれば同じオフセット距離で寸法を作成したいのです。
標準でフレームの設定をして鍵付きフレームを適用してもうまくいかず。 寸法からの間隔調整ができるかと探しても、それらしいパラメータが見つけられず。
編集方法をご存知の方がいらっしゃいましたらご教授ください。 お願いします。 |
| 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 というわけで、結果わかりましたら報告します〜 |
|