Unofficial CATIA User Forum


マクロについて教えてください。
ページ移動 1, 2  次へ
 
新しいトピックを投稿   トピックに返信    Unofficial CATIA User Forum フォーラム一覧 -> 初心者フォーラム
投稿者 メッセージ
mari



登録日: 2007年8月 26日
記事: 37

記事日時: 2008.08.16 (土) 12:33    記事の件名: マクロについて教えてください。 引用付きで返信

いつもお世話になっています。mariです。初心者の質問で申し訳ありません。
drawingで図面作成時に、よく使うある要素をマクロで持ってきたいのですが、うまくできません。カタログ化でもよいのですがこれをマクロでできないかと。
マクロの記録でやると図面ファイル名がコーディングで指定されてしまうのでこの部分を「選んでいるdrawing(ファイル)に貼り付ける」という形にしたいのです。マクロの記録ですと・・・
Dim specs And GeoWindow1 As SpecsAndGeomWindow
Set specs And GeoWindow1 = window1.Item("ファイル名")

このようになるのでこのファイル名のところを現在選んでいるdrawingにするにはどういうコードに変えたらよいでしょうか?
過去のものをいろいろ調べて実行したのですが、できなくてどうしてわかりませんでした。よろしくおねがいします。
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信
k-suke



登録日: 2007年4月 07日
記事: 95

記事日時: 2008.08.18 (月) 10:09    記事の件名: Re: マクロについて教えてください。 引用付きで返信

mariさん こんにちは
マクロの記録を参照する図面からはじめていませんか?
“現在選んでいるdrawing”からはじめてみてはどうでしょうか。
外していたらすみません。
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信
mari



登録日: 2007年8月 26日
記事: 37

記事日時: 2008.08.18 (月) 11:59    記事の件名: Re: マクロについて教えてください。 引用付きで返信

k-sukeさん、返信ありがとうございます。
はい。要素を貼り付けたいdrawingをセレクトした状態からマクロの記録をスタートさせましたがやはり、貼り付けるときにそのdrawingのツリーの一番上を選びpasteし、detail sheetに入れるのでコードがどうしてもツリーの一番上の名前("ファイル名") で入ってしまいます。
説明が不十分ですみません。あるファイル(貼り付け元)のdetail sheetを他(貼り付け先)のファイルのdetail sheetに入れたいのです。
何か、やり方がまずいのでしょうか?
すみません、よろしくお願いします。
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信
k-suke



登録日: 2007年4月 07日
記事: 95

記事日時: 2008.08.18 (月) 12:40    記事の件名: Re: マクロについて教えてください。 引用付きで返信

これが参考になりませんか。
http://catiauser.net/phpBB/post-7418.html&highlight=#7418
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信
mari



登録日: 2007年8月 26日
記事: 37

記事日時: 2008.08.18 (月) 15:04    記事の件名: Re: マクロについて教えてください。 引用付きで返信

k-sukeさん再び返信ありがとうございます。
はい、これも以前試してみましたが下記の部分が黄色くエラーになってしまいます。
Set drawingSheet2 = drawingSheets2.Item("シート.2 (部分拡大)")
カーソルを当てるとdrawingSheet2 =Empty と出ます。これはどのような意味でしょうか?drawingSheet2 が存在していなくて要素が入っていないということでしょうか?

本来ならば勉強してから出直すべきで、こんな質問をして申し訳ありません
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信
k-suke



登録日: 2007年4月 07日
記事: 95

記事日時: 2008.08.18 (月) 15:46    記事の件名: Re: マクロについて教えてください。 引用付きで返信

このマクロはR16の時に書いています。(今もそうですが・・)
R17から "シート.2 (部分拡大)" の表現が "シート.2 (ディテール)"に変わっています。
修正していますか。当然英語環境だとそれにあわせる必要があると思います。
drawingSheet2が存在していなければもっと前にエラーが出ると思います。
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信
mari



登録日: 2007年8月 26日
記事: 37

記事日時: 2008.08.18 (月) 16:44    記事の件名: Re: マクロについて教えてください。 引用付きで返信

ありがとうございます。
はい。英語環境なのでSheet.2(Detail)に変えてあり、その下の「2D構成要素」は
2D Component に名前を変えてあります。Sheet.2と(Detail)の間にブランクが抜けていたので入れたら黄色からは脱出しましたが、drawingSheet2 =Emptyはカーソルをもっていくと表示はされてしまいます。
でも又、次にその下の「drawingViews2.Item("2D構成要素.1") 」の行で又黄色くなりひっかかっています。
何度もすみません。。。
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信
k-suke



登録日: 2007年4月 07日
記事: 95

記事日時: 2008.08.18 (月) 17:35    記事の件名: Re: マクロについて教えてください。 引用付きで返信

問題ない気がしますけどね・・
全角スペースが入っているとかありませんか。

drawingViews2.Item("2D構成要素.1")のところを
drawingViews2.Item(3)にしてみるとか
"2D構成要素.1"を分かりやすい名前に変えるとか
やってみてはどうでしょうか。
私は仕上げ記号はfm1、センター記号はcenter2とかにしています。

Item(3)は想像です。VBAのローカルウインドウで確認してください。
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信
mari



登録日: 2007年8月 26日
記事: 37

記事日時: 2008.08.18 (月) 22:24    記事の件名: Re: マクロについて教えてください。 引用付きで返信

k-sukeさんありがとうございます。

Code:
 
Sub CATMain()
Set drawingDocument1 = CATIA.ActiveDocument
Set drawingSheets1 = drawingDocument1.Sheets
Set drawingSheet1 = drawingSheets1.ActiveSheet
Set drawingViews1 = drawingSheet1.Views
Set drawingView1 = drawingViews1.ActiveView
Set drawingComponents1 = drawingView1.Components

Set drawingDocument2 = CATIA.Documents.Read("N:\drawing1.CATDrawing")
Set drawingSheets2 = drawingDocument2.Sheets
Set drawingSheet2 = drawingSheets2.Item("Sheet.2 (Detail)")
Set drawingViews2 = drawingSheet2.Views
Set drawingView2 = drawingViews2.Item("2DComponent.1")
Set selection1 = drawingDocument2.selection

selection1.Copy
Set selection2 = drawingDocument1.selection
selection2.Add drawingView1
selection2.Paste

End Sub

selectionのコードのところでエラーが出てしまいます。
おかしいところをご指摘願いますか?すみません。よろしくお願いします。
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信
k-suke



登録日: 2007年4月 07日
記事: 95

記事日時: 2008.08.19 (火) 10:02    記事の件名: Re: マクロについて教えてください。 引用付きで返信

mariさん こんにちは

なぜエラーが出るのかは分かりませんが
selection1を設定しただけで中に何も入っていないので
その後にAddが必要ですね。

その後のPastは対話で出来ないので出来ない気がします。
前述の希望と異なる気もします。

mari wrote:
あるファイル(貼り付け元)のdetail sheetを他(貼り付け先)のファイルのdetail sheetに入れたいのです。


希望と少し違いますが貼り付け元のcomponent(fmG)を貼り付け先のdetail sheetにコピーするマクロです。
下のマクロは"シート.2 (部分拡大)"を作成した状態からはじめてください。日本語の部分は置き換えてください。
すみません。このあたりが限界です。


Code:
Sub CATMain()

Set drawingDocument1 = CATIA.ActiveDocument

Set drawingSheets1 = drawingDocument1.Sheets

Set drawingSheet1 = drawingSheets1.Item("シート.2 (部分拡大)")

Set documents1 = CATIA.Documents

Set drawingDocument2 = documents1.Read("N:\MyTitle\FinishMark.CATDrawing")

Set selection1 = drawingDocument2.Selection

selection1.Clear

Set drawingSheets2 = drawingDocument2.Sheets

Set drawingSheet2 = drawingSheets2.Item("シート.2 (部分拡大)")

Set drawingViews2 = drawingSheet2.Views

Set drawingView2 = drawingViews2.Item("fmG")

selection1.Add drawingView2

selection1.Copy

Set selection2 = drawingDocument1.Selection

selection2.Clear

selection2.Add drawingSheet1

selection2.Paste

drawingDocument2.Close

End Sub
トップに戻る
ユーザー情報を表示 プライベートメッセージを送信
特定期間内の記事を表示:   
新しいトピックを投稿   トピックに返信    Unofficial CATIA User Forum フォーラム一覧 -> 初心者フォーラム All times are GMT +9:00
ページ移動 1, 2  次へ
Page 1 of 2

 
移動先:  
新規投稿:
返信投稿:
記事編集: 不可
記事削除: 不可
投票参加: 不可
このフォーラムで添付ファイルを投稿 できません
このフォーラムでファイルをダウンロード できません

© Tadas Talaikis, oashy, 2005
Powered by phpBB © 2001, 2005 phpBB Group
WP Theme by Sebastian Schmieg. phpBB Conversion by Branwen.net