バブルソートを利用した測定マクロを紹介!!

※使用、または変更の際は十分注意してください。責任は一切取りません!!!!!(というかトレマセン)

これから紹介するマクロはマザックで僕が実際に使用(EIA)しています。すむぅぅぅすGだよ。動作確認済み

使用用途としてはこんな感じ。たとえばこのワーク。

画像2

1000×1000×10で溝の深さ公差、3の0から+0.05だとしましょう。みなさんならどのように加工しますか?一番の敵は反りですね。

単品であれば反りをとるために引いてもいいかもしれません。このワークなら、直置きでもいいですね!治具を作るのもいいかもしれません(この大きさだと材料だry)

ですが、何らかの理由でそうはいかない場合もあります。

穴が大量で、直置きできない。引くとしても、数が多くetc...

そのような場合はピックテスターで慎重に慎重に平面度を監視しなければなりませんよね。お釈迦は嫌だもん!!

この平面度を見る時間!!ものが大きくなればなるほど時間がかかります!!

そこで今回の目玉!!!

測定マクロの登場ですーーー!!

これがメインプログラム。測定したい箇所の座標を入力することで、順に記録し座標値を書き換えます。#600に座標値を記録し計算し、#632にどの程度差があるか(反っているか)記録します。#640には記録していった順に書き出されます。(完成度はご了承ください。。。。)ちょっと贅沢なプログラムということでゼットリッチセンサーと名付けました。ださっといわないで

測定したい基準を3つの中からお選びいただけます。①一番高い基準を座標に設定②一番低い基準を座標に設定③これは平均と書いてありますが、正しくは中間値です。

説明はGコードの横にかいておきます。質問あればいつでもオッケーですよ!

<Z-RICH-SENSA.>()
(Z-RICH-SENSA-MEIN)

(2930=MAX) 
(2935=MIN)
(2940=AVERAGE)

(----SENTAKU----)

#501 =54 (ZAHYOUKEI=G54-G59)  座標系を選択
#500 =2940 (Z-KIJYUN-SENTAKU)  三つの中から選ぶ
#502 =3 (COUNT-MAX30)     何か所測定する?
#510 =0 (Z-HOSEITI)       Zに補正値たしてく?
(---------------)

(----SENSA-SETTEI-----)

#503 =60. (SENSA-INISYARU-TEN)  イニシャル点
#504 =15000 (SENSA-Z-SOKUDO)  測定の速度
#511 =5. (SENSA-RTEN)       センサーのR点

(---------------------)
IF[#510GE#511]GOTO997
M98P2925
IF[#502GE30]GOTO999
M50
G66P2915Z#503F#504

(*-ABS--ZAHYOU---*)     ABSでここから座標を入力していくよ!
(1)X-90.Y-200.        
(2)Y-220.
(3)Y-250.
(4)
(5)

(6)
(7)
(8)
(9)
(10)

(11)
(12)
(13)
(14)
(15)

(16)
(17)
(18)
(19)
(20)

(21)
(22)
(23)
(24)
(25)

(26)
(27)
(28)
(29)
(30)
(-----------------)
G67
M9
IF[#502NE#130]GOTO998
M98P#500

IF[#501NE54]GOTO10
#5223 =#631+#510
GOTO555
N10

IF[#501NE55]GOTO20
#5243 =#631+#510
GOTO555
N20

IF[#501NE56]GOTO30
#5263 =#631+#510
GOTO555
N30

IF[#501NE57]GOTO40
#5283 =#631+#510
GOTO555
N40

IF[#501NE58]GOTO50
#5303 =#631+#510
GOTO555
N50

IF[#501NE59]GOTO60
#5323 =#631+#510
GOTO555
N60

N555
M98P101
M01
M98P102
M30

N998
#3000 =54(COUNT-MATIGAI)
N999
#3000 =51(COUNT-MAX30)
N997=53(RTEN-KANSYOU2>1)

ここからサブ!!!!5つあるからかなり長いです。。。僕はもうタイピング疲れましたwww

一番高いところを計算するマクロ

O2930(Z-RICH-SAB-MAX)
(Z-RICH-SENSA-SAB-MAX)

#105 =0 (#ZENNTAINO.KAISUU.NANTOORI)
#106 =0 (#NANNKAIDE.SAISYONIMODORUKA)
#107 =#502*[#502-1]/2 (ZENNTAINOKAISUUNANTOORI)
#108 =#502-1 (KAISUU-1)
#109 =-[#108] (-KAISUU)(#NANNKAIDE.SAISYONIMODORUKA)

#150 =600
#151 =601


WHILE[#105LT#107]DO1

IF[#[#150]LT#[#151]]GOTO11
#105 =#105+1
N11
#106 =0

WHILE[#106LT#108]DO2

WHILE[#[#150]LT#[#151]]DO3
#905 =#[#150]
#[#150]=#[#151]
#[#151]=#905
#105 =#105+1
END3

#106 =#106+1
#150 =#150+1
#151 =#151+1

IF[#106NE#108]GOTO4
#150 =#150+#109
#151 =#151+#109
N4

END2

END1


#631 =#600

#935 =599
#935 =#935+#502
#632 =ABS[#600-#[#935]]

M99

一番低いところを計算するマクロ

O2935(Z-RICH-SAB-MIN)
(Z-RICH-SENSA-SAB-MIN)

#105 =0 (#ZENNTAINO.KAISUU.NANTOORI)
#106 =0 (#NANNKAIDE.SAISYONIMODORUKA)
#107 =#502*[#502-1]/2 (ZENNTAINOKAISUUNANTOORI)
#108 =#502-1 (KAISUU-1)
#109 =-[#108] (-KAISUU)(#NANNKAIDE.SAISYONIMODORUKA)

#150 =600
#151 =601

WHILE[#105LT#107]DO1

IF[#[#150]GT#[#151]]GOTO11
#105 =#105+1
N11
#106 =0

WHILE[#106LT#108]DO2

WHILE[#[#150]GT#[#151]]DO3
#905 =#[#150]
#[#150]=#[#151]
#[#151]=#905
#105 =#105+1
END3

#106 =#106+1
#150 =#150+1
#151 =#151+1

IF[#106NE#108]GOTO4
#150 =#150+#109
#151 =#151+#109
N4

END2

END1

#631 =#600

#935 =599
#935 =#935+#502
#632 =ABS[#[#935]-#600]

M99

中間地を求めるマクロ

O2940(Z-RICH-SAB-AVERAGE)
(Z-RICH-SENSA-SAB-AVERAGE)

#105 =0 (#ZENNTAINO.KAISUU.NANTOORI)
#106 =0 (#NANNKAIDE.SAISYONIMODORUKA)
#107 =#502*[#502-1]/2 (ZENNTAINOKAISUUNANTOORI)
#108 =#502-1 (KAISUU-1)
#109 =-[#108] (-KAISUU)(#NANNKAIDE.SAISYONIMODORUKA)

#150 =600
#151 =601


WHILE[#105LT#107]DO1

IF[#[#150]LT#[#151]]GOTO11
#105 =#105+1
N11
#106 =0

WHILE[#106LT#108]DO2

WHILE[#[#150]LT#[#151]]DO3
#905 =#[#150]
#[#150]=#[#151]
#[#151]=#905
#105 =#105+1
END3

#106 =#106+1
#150 =#150+1
#151 =#151+1

IF[#106NE#108]GOTO4
#150 =#150+#109
#151 =#151+#109
N4

END2

END1

#631 =#600

#935 =599
#935 =#935+#502
#632 =ABS[#600-#[#935]]

#631 =[#600+#[#935]]/2

M99

EIAでのz測定。マザックだとマザトロールで測定するのが一般的だとおもいますが、やっとの思いでEIAでの測定に成功しました。ここ興味ある人は多いのでは?

O2915(Z-RICH-SENSA-SAB)
(Z-RICH-SENSA-SAB)

IF[#130GE30]GOTO999

#127 =0.02(HOSEI)

G1Z#511F#9
G91G31Z-10.F30
#185 =#[60000+#131]
#186 =#127+#5023+[-#185]
G4X0.5
G90G1Z#26F#9
#130 =#130+1

#[#125]=#186
#125 =#125+1

#[#110]=#186
#110 =#110+1

M99

N999
#3000 =50(SOKUTEI-OVER.MAX30)

各種設定マクロ

O2925(Z-RICH-SENSA-SAB)
(Z-RICH-SENSA-SAB)

#110 =640
#120 =0
#125 =600
WHILE[#120NE75]DO1
#[#125]=0
#120 =#120+1
#125 =#125+1
END1

#125 =600 (MAKURO-HENSUU)
#130 =0
#131 =60 (TOUCH-SENSA)

IF[#131NE60]GOTO999
IF[#502GE30]GOTO998
M98P100
T#131
M6
G90G00G#501X0Y0
G43Z60.H#131
M50

M99

N998
#3000 =52(COUNT-30-OVER)
N999
#3000 =53(TOUCH-SENSA=NOT60)

とまあ、ざっくり説明しましたがマクロを使い段取り時間を大幅に削減できました。公差にも入ってくれますし、あまりにも反りが大きい場合などはエラーで止めることだって可能です!

現場の先輩からは、交代の時の引継ぎで意味が分からない。わかるように説明してと言われてしまいました。汗

個人的には、大満足のマクロです♪


この記事が気に入ったらサポートをしてみませんか?