Microsoft Word - ‚²‰ÆŸ_ٶ.doc

Similar documents
untitled

NCB564個別00版

81 /******************************************************************************/ 82 /* スレーブアドレスの設定 */ 83 /*****************************************

C 資料 電脳梁山泊烏賊塾 MFC アプリケーション MFC アプリケーションの作成 初めに 此処では Visual Studio 2017 を起動し 新しいプロジェクトで MFC を選択し MFC(Micorosft Foundation Class) アプリケーションを作成する イ

double float

解きながら学ぶC++入門編

Gpci4ソフト_下位DLL_説明書3版.PDF

K227 Java 2

IO-PCIソフト仕様書3版.PDF

Condition DAQ condition condition 2 3 XML key value

AquesTalk for WinCE プログラミングガイド

Java演習(4) -- 変数と型 --

AquesTalk Win Manual

AquesTalk プログラミングガイド

2016 VOCALOID Group, Yamaha Corporation 2

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

NI P1200 Release Notes Cover

untitled

SMC-4DL-PCI

CCD リニアイメージセンサ用駆動回路 C CCD リニアイメージセンサ (S11155/S ) 用 C は 当社製 CCDリニアイメージセンサ S11155/S 用に開発された駆動回路です S11155/S11156-

86 セRH Series 型式と記号 機種 :DC サーボアクチュエータ RH シリーズ 型番 :5,8,11,14 バージョン記号 出力軸定格回転速度 : 6r/min を示す 仕様 ( インクリメンタルエンコーダ付 ) RH - 14 D E 1 A L エンコーダ出力方式 O

PowerPoint Presentation

Smalltalk_

CMOS リニアイメージセンサ用駆動回路 C10808 シリーズ 蓄積時間の可変機能付き 高精度駆動回路 C10808 シリーズは 電流出力タイプ CMOS リニアイメージセンサ S10111~S10114 シリーズ S10121~S10124 シリーズ (-01) 用に設計された駆動回路です セン

シングルドキュメントの作成 新しいプロジェクトで MFC アプリケーションを選択すると アプリケーションの種類のオプションのダイアログが開くので アプリケーションの種類にシングルドキュメントを選択して 次へボタンをクリックする ( 此処で完了ボタンをクリックしても構わないが 不要なフレームペインを取


やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

Java updated

Microsoft Word - SU1204教本(Driver)原稿.docx

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

SystemC言語概論

アルゴリズムとデータ構造1

SLCONFIG の操作 JF1PYE Ⅰ. PC と slconfig の通信設定 Ⅱ. Slconfig の操作 Ⅲ. 端末ソフトによる Command 機能 Ⅳ. slconfig 実行形式プログラムの作成 Ⅴ. 端末ソフト Tera Term のダウンロード インストー

VB.NETコーディング標準

Microsoft Word - C言語研修 C++編 3.doc

新版明解C言語 実践編

TestDesign for Web

解きながら学ぶJava入門編

NJU72501 チャージポンプ内蔵 圧電用スイッチングドライバ 概要 NJU72501はチャージポンプ回路を内蔵し 最大で3V 入力から 18Vppで圧電サウンダを駆動することができます このチャージポンプ回路には1 倍 2 倍 3 倍昇圧切り替え機能を備えており 圧電サウンダの音量を変更すること


joho07-1.ppt

JavaプログラミングⅠ

CashDrawer ライブラリ API 仕様書 2014/07/09 CashDrawer ライブラリ API 仕様書 Rev / 10

JavaプログラミングⅠ

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

新コンフィギュレータのフレームワークについて

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

2

Microsoft PowerPoint ppt

課題

ファイル入出力

GR-SAKURA-SAのサンプルソフト説明

MACHでのテスト方法

新・明解Java入門

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

共通部機器仕様構造 : 壁取付シャーシに避雷器 モデム 入出力ユニットをマウント接続方式 回線 :M4 ねじ端子接続 入出力 電源 :M3.5 ねじ端子接続 接地 :M4 ねじ端子接続シャーシ材質 : 鋼板に黒色クロメート処理ハウジング材質 : 難燃性黒色樹脂アイソレーション : 回線 - 入出力

Java学習教材

r02.dvi

2: 3: A, f, φ f(t = A sin(2πft + φ = A sin(ωt + φ ω 2πf 440Hz A ( ( 4 ( 5 f(t = sin(2πf 1t + sin(2πf 2 t = 2 sin(2πt(f 1 + f 2 /2 cos(2πt(f 1 f

電気的特性 (Ta=25 C) 項目 記号 条件 Min. Typ. Max. 単位 読み出し周波数 * 3 fop khz ラインレート * Hz 変換ゲイン Gc ゲイン =2-5 - e-/adu トリガ出力電圧 Highレベル Vdd V -

Microsoft Word - 3 生産(仕切り).doc

前回の内容 マイクロコンピュータにおけるプログラミング PC上で作成 コンパイル マイコンに転送 実行 プログラムを用いて外部の装置を動作させる LED turnonled turnoffled LCD printf プログラムを用いて外部の装置の状態を読み取る プッシュスイッチ getpushsw

JavaプログラミングⅠ

Android プログラム ガイド

8 if switch for while do while 2

25mm LED DISPLAY UNIT PD SERIES [ フォトカプラ内蔵型表示器 ] 文字高 25mm 表示器 1 桁幅寸法 27mm LED 発光色 2 色用意 ワンタッチ取り付け フォトカプラ / 0~9 表示ドライバー内蔵型 フォトカプラ / 0~F 表示ドライバー内蔵型 形名の呼

Transcription:

CNC 1p- 49p 13 2 28 1010202

2

1 4 1 5 2 7 2.1 8 2.2 10 2.2.1 11 2.2.2 13 3 15 3.1 16 3.1.1 CNC 16 3.1.2 PCPG46 17 3.1.3 PG46 CNV 19 3.1.4 PCPG46 20 3.1.5 HSSB 21 3.1.6 22 3.2 23 3.3 24 4 26 4.1 27 4.2 28 4.3 29 4.4 30 31 32 3

4

1 1950 1960 (Numerical Control,NC) 1 FMS(Frexible Manufacturing System) CIM(Computor Integrated Manufacturing) FMS CIM 5

MC 6

7

2.1 Real-time feedback Long term feedback 2.1 2.1 Long term feedback 8

1. 2. CNC 9

2.2 10

2.2.1 CIM CIM CAD Computer Aided Design CAM Computer Aided Manufacturing CAPP Computer Aided Process Planning CAE Computer Aided Engineering CIM CIM 11

A A B B 2.2, CAD 2.2 2.3 D A C 2.3 B 12

2.2.2, 2.2.1 EWS CAD/CAM 13

CAD/CAM CAD, 14

15

3.1 3.1.1 CNC 3.1 CNC CNC MC HSSB High Speed Serial Buss CNC OKK VM4 16

3.1.2 PCPG46 3.2 PCPG46 17

PCPG46 専有アドレス 64アドレス使用外形寸法 106.68 174.63mm( コネクタ部 パネル部含まず ) 入力電源 DC+5V±0.25V 消費電流 Min 200mA Max 1000mA 制御機能 PRESET PULSE DRIVE ( 指定パルス数ドライブ ) CONTINUOUS DRIVE ( 連続ドライブ ) SIGNAL SEARCH 1,2 DRIVE ( 信号検出ドライブ ) 最高出力周波数 4.096MPPS 速度オーバーライド機能移動量オーバーライド機能直線加減速機能自動 S 字加減速機能出力パルス数管理用 28Bit Counter 内蔵 ( 各軸毎 ) フィードバックパルス数管理用 28Bit Counter 内蔵 ( 各軸毎 ) 偏差量自動算出機能急停止機能 ( 入力信号 コマンド書き込み何れも可能 ) 減速停止機能 ( コマンド書き込み ) リミット停止機能 ( 急停止 減速停止何れも可能 ) 最大 4 軸制御 ( 同時ドライブ可能 ) 出力信号パルス出力等 ラインドライバによる差動出力ドライバ制御出力 フォトカプラによるオープンコレクタ出力 入力信号 使用可能ドライバ 機械系入力及び汎用入力 +12~24V フォトカプラ入力ドライバステータス入力 +12~24V フォトカプラ入力フィードバックパルス入力 ラインレシーバーによる差動入力 ステッピング及びサーボモータドライバパルス列入力型 (1 パルス /2 パルス何れも可能 ) 差動入力 フォトカプラ入力 TTL 入力型 18

3.1.3 PG46 CNV 3.3 PG46 CNV PG46 CNV DIR/PULSE 2 A /B 1 4 19

3.1.4 PCPG46 3.4 1 20

3.1.5 HSSB 3.5 2 21

3.1.6 CNC HSSB PCPG46 PG46 PC 1 HSSB PC 2 3.6 22

3.2 VisualC++ 1 1 m OKK VisualC++ NC 23

3.3 PC 1 1 PC 2 2 MC 24

1 1 2 25

26

4.1 1 3 2 1 2 4.1 OKK 1 1 m 1 0.25 m 1 1 1 2 3 1 3 1 2 2 1 1 m

ルス信号NCプログラムパ4.2 Y 軸X 軸 4.2 S3000 M03 G91 G01 X90.0 F180 M05 M02 NC X 180 /sec 90 30 NC 4000PPS 30 120,000 1 1mm Y 30 オープンアーキテクチ ャマシニング センタ (MC) ボード NC 命令HSSB パルス PG46 PCPG46 1 ボード HSSB 2 4.3 28

4.3 1 2 4.4 (2) の部分がマシニング センタのNCプログラムで 送り速度 180(mm/min) でX 軸方向に30 秒間移動させたものである (1) が (2) のプログラムに1mm/secでY 軸方向に移動するパルスを割り込ませたものである (1) と (2) 2 つの切削跡の終了点を測定すると (1) の切削跡の終了点 2 切削跡の終了点 Y 30 29

4.4 加工中のプログラムに割り込み制御することはできるが まだ複雑な動きができないのでこれを改善していく必要がある また 誤差の修正をするには 他の研究と組み合わすことが必要である この課題を解決することにより 加工誤差修正機能は実現可能な装置である この研究の問題の一つとして NC プログラムによる切削方向と全く逆方向に移動するパルス信号を入力すると 理論的にはマシニング センタの動きはストップしてしまうはずであるが そのパルス信号は MC に認識されず NC プログラムだけが実行された 操作画面 (1) を MC と接続すると MC 自体の外部制御の有効 無効や コントロール画面での自動割り込みの有効 無効に関係なく MC 自体でのハンドル操作ができなくなる これは MC の内部プログラムの問題なので 操作画面 (1) との接続を解除するか 製造元である OKK に改善してもらう 30

謝辞 本研究を進めるにあたり 多くの方々に御指導 御協力いただきました 指導教官である長尾教授 李軍旗助教授には研究全般から日常生活の多岐にわたり 並々ならぬ御指導をいただき有難う御座いました 同じ研究室の木崎さん 更谷さん 増吉さん 田中 大谷 現田 柳原には大変御世話になりました これからも友達でいてください 以上の方々に深く感謝し 厚くお礼申し上げます 31

// pcpgdlg.cpp : // #include "stdafx.h" #include "pcpg.h" #include "pcpgdlg.h" #include "pcpg46.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = FILE ; int A=0; #endif pcpg46 pcpg; TCHAR szbuf[1024]; BYTE bdata[256]; WORD wbsn, waxis; PCPG46RESOURCE ri; BYTE b; DWORD dwcount; ///////////////////////////////////////////////////////////////////////////// // CAboutDlg class CAboutDlg : public CDialog public: CAboutDlg(); 32

// //AFX_DATA(CAboutDlg) enum IDD = IDD_ABOUTBOX ; //AFX_DATA // ClassWizard //AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pdx); // DDX/DDV //AFX_VIRTUAL // protected: //AFX_MSG(CAboutDlg) //AFX_MSG DECLARE_MESSAGE_MAP() ; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) //AFX_DATA_INIT(CAboutDlg) //AFX_DATA_INIT void CAboutDlg::DoDataExchange(CDataExchange* pdx) CDialog::DoDataExchange(pDX); //AFX_DATA_MAP(CAboutDlg) //AFX_DATA_MAP BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) //AFX_MSG_MAP(CAboutDlg) // //AFX_MSG_MAP 33

END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CPcpgDlg CPcpgDlg::CPcpgDlg(CWnd* pparent /*=NULL*/) : CDialog(CPcpgDlg::IDD, pparent) //AFX_DATA_INIT(CPcpgDlg) m_distance = 0; m_feedrate = 0; m_massage = _T(""); //AFX_DATA_INIT // : LoadIcon Win32 DestroyIcon m_hicon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); void CPcpgDlg::DoDataExchange(CDataExchange* pdx) CDialog::DoDataExchange(pDX); //AFX_DATA_MAP(CPcpgDlg) DDX_Control(pDX, IDC_Xjiku, m_chkx); DDX_Control(pDX, IDC_Zjiku, m_chkz); DDX_Control(pDX, IDC_Yjiku, m_chky); DDX_Text(pDX, IDC_EDIT_DISTANCE, m_distance); DDX_Text(pDX, IDC_EDIT_FEED, m_feedrate); DDX_Text(pDX, IDC_EDIT_MESSAGE, m_massage); //AFX_DATA_MAP BEGIN_MESSAGE_MAP(CPcpgDlg, CDialog) //AFX_MSG_MAP(CPcpgDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() 34

ON_BN_CLICKED(IDC_PCPGINIT, OnPcpginit) ON_BN_CLICKED(IDC_MINUS, OnMinus) ON_BN_CLICKED(IDC_PLUS, OnPlus) ON_BN_CLICKED(IDC_PCPGCLOSE, OnPcpgclose) ON_EN_CHANGE(IDC_EDIT_DISTANCE, OnChangeEditDistance) ON_EN_CHANGE(IDC_EDIT_FEED, OnChangeEditFeed) ON_BN_CLICKED(IDC_Xjiku, OnXjiku) ON_BN_CLICKED(IDC_Yjiku, OnYjiku) ON_BN_CLICKED(IDC_Zjiku, OnZjiku) ON_EN_CHANGE(IDC_EDIT_MESSAGE, OnChangeEditMessage) //AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CPcpgDlg BOOL CPcpgDlg::OnInitDialog() CDialog::OnInitDialog(); // "..." // IDM_ABOUTBOX ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* psysmenu = GetSystemMenu(FALSE); if (psysmenu!= NULL) CString straboutmenu; straboutmenu.loadstring(ids_aboutbox); if (!straboutmenu.isempty()) psysmenu->appendmenu(mf_separator); psysmenu->appendmenu(mf_string, 35

IDM_ABOUTBOX, straboutmenu); // // SetIcon(m_hIcon, TRUE); // SetIcon(m_hIcon, FALSE); // // TODO: return TRUE; // TRUE void CPcpgDlg::OnSysCommand(UINT nid, LPARAM lparam) if ((nid & 0xFFF0) == IDM_ABOUTBOX) CAboutDlg dlgabout; dlgabout.domodal(); else CDialog::OnSysCommand(nID, lparam); // // MFC document/view // 36

void CPcpgDlg::OnPaint() if (IsIconic()) CPaintDC dc(this); // SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.getsafehdc(), 0); // int cxicon = GetSystemMetrics(SM_CXICON); int cyicon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.width() - cxicon + 1) / 2; int y = (rect.height() - cyicon + 1) / 2; // dc.drawicon(x, y, m_hicon); else CDialog::OnPaint(); // // HCURSOR CPcpgDlg::OnQueryDragIcon() return (HCURSOR) m_hicon; void CPcpgDlg::OnPcpginit() 37

// TODO: // Pcpg46.Dll if ( FALSE == pcpg.pcpg46wdllopen() ) pcpg.errormessage(pcpg46_bsn_auto); return ; // DLL // if ( FALSE == pcpg.pcpg46wgetlibversion(bdata)) pcpg.errormessage(pcpg46_bsn_auto); return ; wsprintf( szbuf, _T("PCPG46 n") _T("Dll Version %s"), bdata ); pcpg.resultmessage( szbuf ); // if ( FALSE == pcpg.pcpg46wgetdrvversion(bdata)) pcpg.errormessage(pcpg46_bsn_auto); return ; wsprintf( szbuf, _T("PCPG46 n") _T("Drv Version %s"), bdata ); pcpg.resultmessage( szbuf ); // 38

wbsn = PCPG46_BSN_AUTO; // if ( FALSE == pcpg.pcpg46wcreate(&wbsn) ) pcpg.errormessage(pcpg46_bsn_auto); return ; wsprintf( szbuf, _T("PCPG46 Created n") _T("BSN Number %d"), wbsn ); pcpg.resultmessage( szbuf ); // if ( FALSE == pcpg.pcpg46wgetresource(wbsn,&ri)) pcpg.errormessage(wbsn); return ; wsprintf(szbuf, _T("Board Name: %s n") _T("IO Address : %04Xh-%04Xh n"), szpcpg46, ri.dwioportbase[1],ri.dwioportbase[1] + ri.dwioportlength[1] - 1 ); pcpg.resultmessage(szbuf); // waxis = PCPG46_AXIS_1; // if ( FALSE == pcpg.pcpg46_initaxis(wbsn,waxis)) pcpg.errormessage(wbsn); return ; 39

wsprintf( szbuf, _T("PCPG46 n") _T(" %d "), waxis ); pcpg.resultmessage( szbuf ); // 2 waxis = PCPG46_AXIS_2; // if ( FALSE == pcpg.pcpg46_initaxis(wbsn,waxis)) pcpg.errormessage(wbsn); return ; wsprintf( szbuf, _T("PCPG46 n") _T(" %d "), waxis ); pcpg.resultmessage( szbuf ); // 3 waxis = PCPG46_AXIS_3; // if ( FALSE == pcpg.pcpg46_initaxis(wbsn,waxis)) pcpg.errormessage(wbsn); return ; wsprintf( szbuf, _T("PCPG46 n") _T(" %d "), waxis ); 40

pcpg.resultmessage( szbuf ); void CPcpgDlg::OnMinus() // TODO: // 100*m_distance if(m_chkx.getcheck()) // waxis = PCPG46_AXIS_1; if ( FALSE == pcpg.pcpg46wdatafullwrite( wbsn, waxis, PCPG46_MINUS_PRESET_PULSE_DRIVE, 1*m_distance ) ) pcpg.errormessage(wbsn); return ; /* wsprintf( szbuf, _T("PCPG46 n") _T(" %d mm "), m_distance); pcpg.resultmessage( szbuf ); */ if(m_chky.getcheck()) // 2 waxis = PCPG46_AXIS_2; 41

if ( FALSE == pcpg.pcpg46wdatafullwrite( wbsn, waxis, PCPG46_MINUS_PRESET_PULSE_DRIVE, 1*m_distance ) ) pcpg.errormessage(wbsn); return ; /* wsprintf( szbuf, _T("PCPG46 n") _T(" %d mm "), m_distance); pcpg.resultmessage( szbuf ); */ if(m_chkz.getcheck()) // 3 waxis = PCPG46_AXIS_3; if ( FALSE == pcpg.pcpg46wdatafullwrite( wbsn, waxis, PCPG46_MINUS_PRESET_PULSE_DRIVE, 1*m_distance ) ) pcpg.errormessage(wbsn); return ; /* wsprintf( szbuf, _T("PCPG46 n") _T(" %d mm "), m_distance); pcpg.resultmessage( szbuf ); */ /* wsprintf( szbuf, _T("PCPG46 n") _T(" ")); pcpg.resultmessage( szbuf ); return; 42

*/ void CPcpgDlg::OnPlus() // TODO: // m_distance if(m_chkx.getcheck()) // waxis = PCPG46_AXIS_1; if ( FALSE == pcpg.pcpg46wdatafullwrite( wbsn, waxis, PCPG46_PLUS_PRESET_PULSE_DRIVE, m_distance ) ) pcpg.errormessage(wbsn); return ; /* wsprintf( szbuf, _T("PCPG46 n") _T(" %d mm "),m_distance); pcpg.resultmessage( szbuf ); */ if(m_chky.getcheck()) // 2 waxis = PCPG46_AXIS_2; 43

if ( FALSE == pcpg.pcpg46wdatafullwrite( wbsn, waxis, PCPG46_PLUS_PRESET_PULSE_DRIVE, m_distance ) ) pcpg.errormessage(wbsn); return ; /* wsprintf( szbuf, _T("PCPG46 n") _T(" %d mm "),m_distance); pcpg.resultmessage( szbuf ); */ if(m_chkz.getcheck()) // 3 waxis = PCPG46_AXIS_3; if ( FALSE == pcpg.pcpg46wdatafullwrite( wbsn, waxis, PCPG46_PLUS_PRESET_PULSE_DRIVE, m_distance ) ) pcpg.errormessage(wbsn); return ; /* wsprintf( szbuf, _T("PCPG46 n") _T(" %d "),m_distance); pcpg.resultmessage( szbuf ); */ /* wsprintf( szbuf, _T("PCPG46 n") _T(" ")); pcpg.resultmessage( szbuf ); return; 44

*/ void CPcpgDlg::OnPcpgclose() // TODO: // if ( FALSE == pcpg.pcpg46wclose(wbsn)) pcpg.errormessage(wbsn); return ; wsprintf( szbuf, _T("PCPG46 Close n") _T("Bsn %d"), wbsn ); pcpg.resultmessage( szbuf ); // Pcpg46.Dll if ( FALSE == pcpg.pcpg46wdllclose()) pcpg.errormessage(pcpg46_bsn_auto); return ; // DLL return ; void CPcpgDlg::OnChangeEditDistance() // TODO: RICHEDIT lparam // ENM_CHANGE 45

CRichEditCrtl().SetEventMask() // CDialog::OnInitDialog() // // TODO: CEdit * str = (CEdit *) GetDlgItem(IDC_EDIT_DISTANCE); char count[10]; int n; n=str->getline(0,count,10); count[n] = 0; m_distance = atoi(count); void CPcpgDlg::OnChangeEditFeed() // TODO: RICHEDIT lparam // ENM_CHANGE CRichEditCrtl().SetEventMask() // CDialog::OnInitDialog() // // TODO: CEdit * str = (CEdit *) GetDlgItem(IDC_EDIT_FEED); char count[10]; int n; n=str->getline(0,count,10); count[n] = 0; m_feedrate = atoi(count); if(m_chkx.getcheck()) 46

// waxis = PCPG46_AXIS_1; if ( FALSE == pcpg.pcpg46_change_feed(wbsn,waxis,m_feedrate)) pcpg.errormessage(wbsn); return ; wsprintf( szbuf, _T("PCPG46 n") _T(" %d %d PPS "), waxis,m_feedrate); pcpg.resultmessage( szbuf ); else if(m_chky.getcheck()) // 2 waxis = PCPG46_AXIS_2; if ( FALSE == pcpg.pcpg46_change_feed(wbsn,waxis,m_feedrate)) pcpg.errormessage(wbsn); return ; wsprintf( szbuf, _T("PCPG46 n") _T(" %d %d mm/min "), waxis,m_feedrate); pcpg.resultmessage( szbuf ); else if(m_chky.getcheck()) // 3 47

waxis = PCPG46_AXIS_3; if ( FALSE == pcpg.pcpg46_change_feed(wbsn,waxis,m_feedrate)) pcpg.errormessage(wbsn); return ; wsprintf( szbuf, _T("PCPG46 n") _T(" %d %d mm/min "), waxis,m_feedrate); pcpg.resultmessage( szbuf ); else wsprintf( szbuf, _T("PCPG46 n") _T(" ")); pcpg.resultmessage( szbuf ); return; void CPcpgDlg::OnXjiku() // TODO: A=1; void CPcpgDlg::OnYjiku() // TODO: 48

A=2; void CPcpgDlg::OnZjiku() // TODO: A=3; void CPcpgDlg::OnChangeEditMessage() // TODO: RICHEDIT lparam // ENM_CHANGE CRichEditCrtl().SetEventMask() // CDialog::OnInitDialog() // // TODO: 49