- ベストアンサー
NCデータの切削条件書き換え方法
- NCデータの切削条件を工具ごとに書き換える方法について質問です。
- CAMで作ったNCデータを編集するためのツールについて教えてください。
- 回転数と送りの数値を変更するための方法を教えてください。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
他の回答者さんが言われているように、CAMで対応できないのでしたら、 スクリプト(私なら「Perl」を使います)で対応するのが一般的と思います。 (以下が本題です) 文字列変換用のソフトで対応するのでしたら、 下記の「Speeeeed」がお勧めです。 http://www.vector.co.jp/magazine/softnews/020316/n0203162.html 本ソフトの特長「置き換えリスト」と「正規表現検索・置換」により、 回答者さんのご希望にそこそこ添えると思います。 「置き換えリスト」が、機械別の切削条件変換リストとなります。 お目に止まったようですね。(^^) Speeeeedはユニークで便利なソフトだと思います。 (以下が本題です) 正規表現は難しいですね。 私もよく分かりません。(^^; 下記の正規表現は、たまたまテストではうまくいっただけで、 間違っているかも知れません。 充分検証の上ご利用下さい。 (置換内容) T1から次のT指令までのS指令をS2000に置換 T1から次のT指令までのF指令をF250に置換 T23から次のT指令までのS指令をS400に置換 T23から次のT指令までのF指令をF40に置換 (置換リスト(「→」がTabです)) (T1((?!T\d+)[\d\D])*?)(?!S2000)S\d+→$1S2000→E (T1((?!T\d+)[\d\D])*?)(?!F250)F\d+→$1F250→E (T23((?!T\d+)[\d\D])*?)(?!S400)S\d+→$1S400→E (T23((?!T\d+)[\d\D])*?)(?!F40)F\d+→$1F40→E (問題点) 例題のncデータはS・F指令がそれぞれ1つなので問題ありませんが、 おそらく他のncデータは複数のS・F指令が存在することがあるでしょう。 その場合、上記の正規表現では1回の実行につき1つめしか置換されないので、 ◇置換リストを何回かコピペして充分巨大なものにする。 ◇置換数が0になるまで「実行」を繰り返す。 などとする必要があります。 1発で複数のS・F指令を置換する正規表現は、 それが可能なのかどうかも私には分かりません。 ( Perlですと、 1 while s///g; と、繰り返しの力技が使えるのですが。 ) いずれにしても、特に最初のうちは、置換前後のncデータを比較して、 間違いないか確認をされることを強くお勧めします。 比較に使用するソフトのお勧めは下記です。 (WinMerge) http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html バグ報告ありがとうございます。 おっしゃるとおりです。 前記の例を修正した置換リスト(「→」がTabです)が下記です。 (T1(?!\d)((?!T\d+)[\d\D])*?)(?!S2000)S\d+→$1S2000→E (T1(?!\d)((?!T\d+)[\d\D])*?)(?!F250)F\d+→$1F250→E (T23(?!\d)((?!T\d+)[\d\D])*?)(?!S400)S\d+→$1S400→E (T23(?!\d)((?!T\d+)[\d\D])*?)(?!F40)F\d+→$1F40→E
その他の回答 (6)
かずばん様が作成されました加工条件チェンジャーはどうでしょうか? TRYCUTのホームページで紹介されております http://www.trycut.com/soft.htm
エクセルで読み込む 全部選択して フィルターをかける T1含むセル T1を含むセルが選択されるので 色を塗る とりあえず赤 フィルタを解除する 同様に S1803 でフィルタをかける 色を塗る 青 同様に F59 で フィルタをかける 色黄色 Tを含む & T1を含まない でフィルタをかける 色は ピンク 赤 青 黄 が 順番に並んでいるか確認する 赤 青 黄 黄 とか 赤 青青 黄黄 は よい 赤 が 変えたい 工具で ピンクが 変えたくない工具なので 赤 ピンク 青 などになっていないか確認する なっていた場合手動 で変更 きれいに並んでいたら 置換で一括 まあ、フィルターをうまく使えば、簡単に修正可能
お礼
ありがとうございます。このソフトは私の希望するものにいぢん近いのですが。T番号ごとに、パーセントではなく数値で入力できれば、つかえるのですが・・・かずぼんさん創ってくれませんかね(笑) トライカットは以前使ってましたので、このソフトは知ってましたが、本当におしい!です。
1) 単純に S、F を変数にする ・・・ VC119=2000 VC109=300 追加 ・・・ G90G00X15.Y15. S=VC119 書き換え:回転数S1803をS2000に変換 ・・・ NCYL G81Z-3.R2.M53 F=VC109 書き換え:F59をF300に変換 ・・・ 2) データ(メモ帳タイプ)⇒エクセル(VBA)⇒変換データ(メモ帳タイプ) 例 入力データ 適用工具番号 変更回転数 変更送り速度 1 2000 300 2 600 100 ・ ・ ・ ・ ・ ・ で T、S、F を検索し S、F の数値を変換する 製作的には容易なソフトです もう少し具体的な使い方を指示下されば協力致します とりあえず作りました。 2) データ(メモ帳タイプ)⇒エクセル(VBA)⇒変換データ(メモ帳タイプ) 例 入力データ 適用工具番号 変更回転数 変更送り速度 1 2000 300 2 600 100 ・ ・ ・ ・ ・ ・ で T、S、F を検索し S、F の数値を変換し出力する タイプです。 でも、このソフトをどのような方法で届けたらよいか解りません。 メール番号の交換がOKならば簡単ですが 規約違反とか言われるのも困りますね。 『技術の森』さんに相談して下さい。私の方は何時でもOKです。 『機械別にすべての切削条件を書き込んだマクロをつくり、一気に書き換えを行いたい』のイメージと私の感覚と多少違うかも知れませんが。
お礼
ありがとうございます。何がしたいのか、詳しく書きます。当社は金型図面が出たと同時に加工データをCAM担当が全部作ります。マシニングは全機種オークマですが古い機械と新しい機械では使用する工具も切削条件も随分違います。しかしCAM担当は一種類の工具条件表とポストで全データ同じ切削条件で出力します。そのデータをマシニング担当がエディターで切削条件を書き換えて使用しております。中には非常に長いデータもありますし、入力ミスの危険もあります。そこでNCデータの切削条件を各工具別に自動で書き換える方法を検討しております。 重複になりますが % T1------------------------------工具がT1の場合にS1803をS2000に書き換え F59をF250に書き換え M06 (CENTER KEI=3 T=1 H=1) N1 G15H46 G90G00X244.Y567.S1803 G56Z100.H1M03 M08 G71Z50. NCYL G81Z-3.R2.F59M53 CALL O29 G80 M09 G00Z100.M05 T23-------------------------------工具がT23の場合にS216をS400に書き換 F17をF40に書き換え M06 T1の書き換えの影響をうけてはいけません (DRILL KEI=26.5 T=23 H=23) N2 G90G00X244.Y567.S216 G56Z100.H23M03 M08 G71Z50. NCYL G83Z-46.4R2.I1.5J4.5F17M53 今のところ固定サイクルの加工データのみを考えております。T番号の次にくるSとFを書き換えるのですが、そのつぎのT番号のSとFに影響してはいけません。私の理想としては。機械別にすべての切削条件を書き込んだマクロをつくり、一気に書き換えを行いたいと思っております。mckazkazさんのおっしゃるエクセルでも可能ならばおしえていただきたいです。よろしくお願いします
ご自身で秀丸のマクロを作成されれば、問題なく変換可能と思いますよ。 複雑になりそうなので手順までは紹介できませんが、インプット関数でキーボードから変換前と変換後の文字を入力。 その後、T1~M05までを別の秀丸ファイルにコピーして、そこで入力した関数と置換。 置換後のデータを元のデータと置き換えてやれば、可能です。 いちいちキーボードからダイレクト入力が面倒ならば、変換前後の値を別ファイルに入力し、そのファイルから工具番号と置換前後の切削条件データを読み込んで、検索・置換を行えばいいと思います。 上記の内容は全て秀丸の関数で対応可能です。 一つずつサブ化して進めていけば、問題ないでしょう。 それが嫌ならCAMオペレーターにその都度出力し直してもらうか、ポストの切削条件の項目を変数化してもらうしかないんじゃないですか?
お礼
ご意見ありがとうございます。秀丸勉強不足でtomatoさんのおっしゃる事がいまいち理解できません。ごめんなさい。ポストの切削条件を変数は一度CAM担当に相談してみます。しかし他のマシニングオペレーターが変数を使うやり方に賛成してもらえるかどうか?それが問題ですね。ありがとうございました
機械の、画面上で、書き換えられませんか? 回転数と、送りのあたいは、穴あけの場合、頻繁には出て来ないでしょう? 工具長補正の時に、M3かけてますが、その前の位置決めの時のほうが もし、衝突した場合、ダメージが、少ないかと? G71を使ってますが、R点が2では高すぎないですか。0.3位でも良いかと思います。Z50まで逃げてますから。 G80も、いらないな。G00で解除と同じ事だから。
お礼
ありがとうございます。現状は機械の画面またはエディターで書き換えております。「R点が2では高すぎないですか」そうですね?検討してみます。「G80も、いらないな」わたしもそう思いますが、CAM担当の気分しだいですかね?参考にします。
CAMに出力させたデータなら、 CAMの条件の設定を変更して再出力させた方が早くないでしょうか. スクリプトに処理させたところで、 スクリプトのデバッグとその処理結果の確認に相応の時間が掛かります.
お礼
私も昔CAMを担当しておりましたので、そのとおりだと思います。しかし今の仕事環境ですとCAM担当に負荷が掛かりすぎており、一度出力したデータを再設定する余裕がありません。そこで現場サイドでなんとか対応出来ないかと考えております。私もネットで散々フリーソフトと秀丸マクロを探しましたがなかなか良いものが見つかりませんでした。何か良い方法がありましたら教えてください。m(_ _;)m
お礼
丁寧な回答ありがとうございます。speeeeedダウンロードして少しつかってみましたが、う~ん難しい!正規表現がわからないです。 もしよろしければ、私の書いた例題のncデータのT1工具の場合、SとFを書きかえる正規表現検索・置き換えを書いていただけると、非常に助かります。 それをヒントにたぶん書き換えリストが作成できると思います。難しいのはT1工具のすぐ後にくるSとFのみを書き換えて、それ以降のSとはFは書き換えてはいけない点です。図々しいお願いですが、よろしくお願いします。 ご迷惑かけております。書かれたとおり試してみたのですが?少し問題が出ましたT1で置き換えるとT11も置き換えてしまいます。T2だとT22も置き換えます。自分で色々書き換えて試してみたのですが、うまくいきません。お世話かけますがお暇な時間にご回答ください。 早速試してみます。ありがとうございました。