本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:NCデータの切削条件書き換え方法)

NCデータの切削条件書き換え方法

2023/10/17 22:42

このQ&Aのポイント
  • NCデータの切削条件を工具ごとに書き換える方法について質問です。
  • CAMで作ったNCデータを編集するためのツールについて教えてください。
  • 回転数と送りの数値を変更するための方法を教えてください。
※ 以下は、質問の原文です

NCデータの切削条件書き換え方法

2009/01/03 22:30

下記のような加工データを工具がT1の場合に回転数S1803をS2000に、送りF59をF300に変換したいのですが、良い方法はないでしょうか
ようするにCAMで作ったNCデータを秀丸エディターまたは安価なシュアウエアーで工具別に切削条件を書き換えたいのですが、宜しくお願いします。

T1                工具がT1の場合
M06
(CENT DIA=3 T=1 H=1)
N1
G15H1
G90G00X15.Y15.S1803       回転数S1803をS2000に変換
G56Z100.H1M03
M08
G71Z50.
NCYL G81Z-3.R2.F59M53      F59をF300に変換
CALL O1
G80
G00Z100.
X210.Y15.
NCYL G81Z-3.R2.M53
CALL O2
G80
M09
G00Z100.M05
以下同じような内容のデータが続くと考えます

質問者が選んだベストアンサー

ベストアンサー
2009/01/08 06:59
回答No.5

他の回答者さんが言われているように、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

お礼

2009/01/10 19:28

丁寧な回答ありがとうございます。speeeeedダウンロードして少しつかってみましたが、う~ん難しい!正規表現がわからないです。
もしよろしければ、私の書いた例題のncデータのT1工具の場合、SとFを書きかえる正規表現検索・置き換えを書いていただけると、非常に助かります。
それをヒントにたぶん書き換えリストが作成できると思います。難しいのはT1工具のすぐ後にくるSとFのみを書き換えて、それ以降のSとはFは書き換えてはいけない点です。図々しいお願いですが、よろしくお願いします。

ご迷惑かけております。書かれたとおり試してみたのですが?少し問題が出ましたT1で置き換えるとT11も置き換えてしまいます。T2だとT22も置き換えます。自分で色々書き換えて試してみたのですが、うまくいきません。お世話かけますがお暇な時間にご回答ください。

早速試してみます。ありがとうございました。

質問者

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する

その他の回答 (7件中 1~5件目)

2009/01/14 22:40
回答No.7

かずばん様が作成されました加工条件チェンジャーはどうでしょうか?
TRYCUTのホームページで紹介されております


http://www.trycut.com/soft.htm

2009/01/08 13:18
回答No.6

エクセルで読み込む

全部選択して フィルターをかける T1含むセル
T1を含むセルが選択されるので 色を塗る とりあえず赤
フィルタを解除する

同様に S1803 でフィルタをかける 色を塗る 青

同様に F59 で フィルタをかける 色黄色 


Tを含む & T1を含まない でフィルタをかける 色は ピンク



赤 青 黄 が 順番に並んでいるか確認する 
赤 青 黄 黄 とか
赤 青青 黄黄 は よい

赤 が 変えたい 工具で ピンクが 変えたくない工具なので
赤 ピンク 青 などになっていないか確認する
なっていた場合手動 で変更

きれいに並んでいたら 
置換で一括


まあ、フィルターをうまく使えば、簡単に修正可能

お礼

2009/01/18 10:29

ありがとうございます。このソフトは私の希望するものにいぢん近いのですが。T番号ごとに、パーセントではなく数値で入力できれば、つかえるのですが・・・かずぼんさん創ってくれませんかね(笑)
トライカットは以前使ってましたので、このソフトは知ってましたが、本当におしい!です。

質問者
2009/01/05 11:22
回答No.4

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です。

『機械別にすべての切削条件を書き込んだマクロをつくり、一気に書き換えを行いたい』のイメージと私の感覚と多少違うかも知れませんが。

お礼

2009/01/05 14:53

ありがとうございます。何がしたいのか、詳しく書きます。当社は金型図面が出たと同時に加工データを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さんのおっしゃるエクセルでも可能ならばおしえていただきたいです。よろしくお願いします

質問者
2009/01/05 09:59
回答No.3

ご自身で秀丸のマクロを作成されれば、問題なく変換可能と思いますよ。

複雑になりそうなので手順までは紹介できませんが、インプット関数でキーボードから変換前と変換後の文字を入力。
その後、T1~M05までを別の秀丸ファイルにコピーして、そこで入力した関数と置換。
置換後のデータを元のデータと置き換えてやれば、可能です。

いちいちキーボードからダイレクト入力が面倒ならば、変換前後の値を別ファイルに入力し、そのファイルから工具番号と置換前後の切削条件データを読み込んで、検索・置換を行えばいいと思います。

上記の内容は全て秀丸の関数で対応可能です。
一つずつサブ化して進めていけば、問題ないでしょう。

それが嫌ならCAMオペレーターにその都度出力し直してもらうか、ポストの切削条件の項目を変数化してもらうしかないんじゃないですか?

お礼

2009/01/05 13:46

ご意見ありがとうございます。秀丸勉強不足でtomatoさんのおっしゃる事がいまいち理解できません。ごめんなさい。ポストの切削条件を変数は一度CAM担当に相談してみます。しかし他のマシニングオペレーターが変数を使うやり方に賛成してもらえるかどうか?それが問題ですね。ありがとうございました

質問者
2009/01/05 09:39
回答No.2

機械の、画面上で、書き換えられませんか?
回転数と、送りのあたいは、穴あけの場合、頻繁には出て来ないでしょう?
工具長補正の時に、M3かけてますが、その前の位置決めの時のほうが
もし、衝突した場合、ダメージが、少ないかと?
G71を使ってますが、R点が2では高すぎないですか。0.3位でも良いかと思います。Z50まで逃げてますから。
G80も、いらないな。G00で解除と同じ事だから。

お礼

2009/01/05 15:09

ありがとうございます。現状は機械の画面またはエディターで書き換えております。「R点が2では高すぎないですか」そうですね?検討してみます。「G80も、いらないな」わたしもそう思いますが、CAM担当の気分しだいですかね?参考にします。

質問者

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。