A. 大螺距矩形螺紋宏程序
加工直螺紋
指令格式: G92 X(U___Z(W)___ F ___
式中: X、Z:取值為螺紋終點坐標值;
U、W:取值為螺紋終點相對循環起點的坐標分量;
F:螺紋的導程。
加工錐螺紋
指令格式: G92 X(U___Z(W)___ R___ F ___
式中: X、Z:取值為螺紋終點坐標值;
U、W:取值為螺紋終點相對循環起點的坐標分量;
R:為圓錐螺紋切削起點和切削終點的半徑差。
B. 我想利用cad中的vba編程,畫多個個矩形,要求第一點在屏幕上直接輸入,再輸入矩形的長和高。
可以實現,看看cad的幫助
C. 數控銑床宏程序怎樣寫 最簡單的實例就好。比如說一個正方形100×100外形深50,每次下刀2 請
#1=100
#2=100
#3=50
#4=2
#5=0
G00 X [#1/耐粗2] Y[#2/2]
WHILE #5.LE. #3
G01 Z[-#5] F100
G01 X[-#1/2] F300
Y[-#1/2]
X[#1/2]
Y[#1/2]
G00 Z2
#5=#5+#4
END
大致搏畝明就這樣,具體的你在分析下
括弧是不是要使用,你看基告看你的設備
D. VB裡面怎麼畫矩形
使用Line方法彎團,向Form,PictureBox這些控制項都支持這個方法。
語法:
object.Line [Step] (x1, 1) [Step] (x2, y2), [color], [B][F]
如:
Me.Line (100,100)-(600,600), vbred, bf
加B這個參數就是矩形,加F就是用就邊框顏色填充
補充:
Color參數就是邊框顏色埋畢橘,如果省略,就數咐用對象的ForeColor(前景色,就是字體的顏色) 屬性值
E. autocad中如何用vba畫圓角矩形
您好,是這樣的:
1.先是畫一個矩形用「L」在輸入長度畫出一個罩指所需要的矩形。
2.倒4個圓角 其實方法就都一樣 輸入fillet命令 再輸入「R 」後輸入你想要倒圓角判嫌的半徑(一般都會給出)再選擇需要倒圓角的2條邊掘悶手就行了 其他3個圓角方法一樣。
F. FAUNC數控系統中,如何利用宏程序銑一個方形槽,請編程高手賜教!
o8001;
#27=#[2000+#7]/2;
#28=#27;
#30=#24-#27/2;
#31=#25-#28*2;
IF[#8 NE 0] GOTO 1;
#8=54;
N1 #11=#[2000+#11];
IF[#11 GT 0] GOTO 2;
#11=1.0;
N2 G90 G00 G#8 X#27 Y#28;
Z#18;
#29=0;
WHILE[#29 LT #26] DO1;
#1=0;
#29=#29+#17;
Z-[#29-#17-#11];
IF[#29 LT #26] GOTO 11;
#29=#26;
N11 G01 Z-[#29] F#8;
#32=#27;
#33=0;
IF[#27 EQ 1] GOTO 100;
IF[#22 EQ 1] GOTO 201;
IF[#24 LT #25] GOTO 201;
N100 DO2;
#32=#32+#[2000+#20];
#33=#33+1;
IF[[#33 AND 1] EQ 0] GOTO 101;
X#30;
GOTO 102;
N101 X#27;
N102 IF[#1 EQ 1] GOTO 12;
IF[#32 LT #31] GOTO 103;
#32=#31;
#1=1;
N103 Y#32;
END2;
N201 DO2;
#32=#32+#[2000+#20];
#33=#33+1;
IF[[#33 AND 1] EQ 0] GOTO 202;
Y#31;
GOTO 203;
N202 Y#28;
N203 IF[#1 EQ 1] GOTO 12;
IF[#32 LT #30] GOTO 204;
#32=#30;
#1=1;
N204 X#32;
END2;
N12 IF[#23 NE 1] GOTO 18;
IF[#22 EQ 1] GOTO 15;
Y#28;
IF[[#33 AND 1] EQ 0] GOTO 13;
X#27;
GOTO 14;
N13 X#30;
N14 Y#27;
GOTO 18;
N15 X#27;
IF[[#33 AND 1] EQ 0] GOTO 16;
Y#28;
GOTO 17;
N16 Y#31;
N17 X#30;
N18 G00 Z#18;
X#27 Y#28;
END1;
N99 M99;
調用指令:G65 P8001 D(刀具直徑補償號) E(坐標系選擇) F(進給量) H(每次深度進給前刀尖與切削麵距離補償號) Q(深度方向每次增量) R(每層切削完後Z軸返回點) T(寬度方向每次增量) U(為1時以X向為切削方向) V(為1時以Y向為切削方向) X(X向長度) Y(Y向長度)Z(深度) W(為1時最後沿四壁加工一周)
這是十年前用的,很粗糙,不知現在的系統能用不,你再調試一下吧。
G. 數控編程宏程序的指令
宏程序編程
一 變數
普通加工程序直接用數值指定G代碼和移動距離;例如,GO1和X100.0。使用用戶宏程序時,數值可以直接指定或用變數指定。當用變數時,變數值可用程序或用MDI面板上的操作改變。
#1=#2+100
G01 X#1 F300
說明:
變數的表示
計算機允許使用變數名,用戶宏程序不行。變數用變數符號(#)和後面的變數號指定。
例如:#1
表達式可以用於指定變數號。此時,表達式必須封閉在括弧中。
例如:#[#1+#2-12]
變數的類型
變數根據變數號可以分成四種類型
變數號
變數類型
功能
#0
空變數
該變數總是空,沒有值能賦給該變數.
#1-#33
局部變數
局部變數只能用在宏程序中存儲數據,例如,運算結果.當斷電時,局部變數被初始化為空.調用宏程序時,自變數對局部變數賦值,
#100-#199
#500-#999
公共變數
公共變數在不同的宏程序中的意義相同.當斷電時,變數#100-#199初始化為空.變數#500-#999的數據保存,即使斷電也不丟失.
#1000
系統變數
系統變數用於讀和寫CNC運行時各種數據的變化,例如,刀具的當前位置和補償值.
變數值的范圍
局部變數和公共變數可以有0值或下面范圍中的值:
-1047到-10-29或-10-2到-1047
如果計算結果超出有效范圍,則發出P/S報警NO.111.
小數點的省略
當在程序中定義變數值時,小數點可以省略。
例:當定義#1=123;變數#1的實際值是123.000。
變數的引用
為在程序中使用變數值,指定後跟變數號的地址。當用表達式指定變數時,要把表達式放在括弧中。
例如:G01X[#1+#2]F#3;
被引用變數的值根據地址的最小設定單位自動地舍入。
例如:
當G00X#/;以1/1000mm的單位執行時,CNC把123456賦值給變數#1,實際指令值為G00X12346.
改變引用變數的值的符號,要把負號(-)放在#的前面。
例如:G00X-#1
當引用未定義的變數時,變數及地址都被忽略。
例如:當變數#1的值是0,並且變數#2的值是空時,G00X#1 Y#2的執行結果為G00X0。
雙軌跡(雙軌跡控制)的公共變數
對雙軌跡控制,系統為每一軌跡都提供了單獨的宏變數,但是,根據參數N0.6036和6037的設定,某些公共變數可同時用於兩個軌跡。
未定義的變數
當變數值未定義時,這樣的變數成為空變數。變數#0總是空變數。它不能寫,只能讀。
引用
當引用一個未定義的變數時,地址本身也被忽略。
當#1=
當#1=0
G90 X100 Y#1
G90 X100
G90 X100 Y#1
G90 X100 Y0
(b) 運算
除了用賦值以外,其餘情況下與0相同。
當#1=時
當#1=0時
#2=#1
#2=
#2=#1
#2=0
#2=#*5
#2=0
#2=#*5
#2=0
#2=#1+#1
#2=0
#2=#1+#1
#2=0
(c)條件表達式
EQ和NE中的不同於0。
當#1=時
當#1=0時
#1EQ#0 成立
#1EQ#0 不成立
#1 NE #0 成立
#1 NE #0 不成立
#1 GE #0 成立
#1 GE #0 不成立
#1 GT #0 不成立
#1 GT #0 不成立
限制
程序號,順序號和任選程序段跳轉號不能使用變數。
例:下面情況不能使用變數:
0#1;
/#2G00X100.0;
N#3Y200.0;
二 算術和邏輯運算
下面表中列出的運算可以在變數中執行。運算符右邊的表達式可包含常量和或由函數或運算符組成的變數。表達式中的變數#j和#k可以用常數賦值。左邊的變數也可以用表達式賦值。
說明:
角度單位
函數SIN ,COS,ASIN,ACOS,TAN和ATAN的角度單位是度。如90°30'表示為90.5度。
ARCSIN # i= ASIN[#j]
(1)取值范圍如下:
當參數(NO.6004#0)NAT位設為0時,270°~90°
當參數(NO.6004#0)NAT位設為1時,-90°~90°
(2)當#j超出-1到1的范圍時,發出P/S報警NO.111.
(3)常數可替代變數#j
ARCCOS #i=ACOS[#j] 取值范圍從180°~0° 當#j超出-1到1的范圍時,發出P/S報警NO.111. 常數可替代變數#j
三 程序舉例
銑橢圓:
軌跡:
橢圓程序代碼如下:
N10 G54 G90 G0 S1500 M03
N12 X0 Y0 Z20.
N14 G0 Z1
N16 G1 Z-5. F150.
N18 G41 D1
N20 #1=0
N22 #2=34
N24 #3=24
N26 #4=#2*COS[#1]
N28 #5=#3*SIN[#1]
N30 #10=#4*COS[45]-#5*SIN[45]
N32 #11=#4*SIN[45]+#5*COS[45]
N34 G1 X#10 Y#11
N36 #1=#1+1
N38 IF [#1 LT 370] GOTO26
N40 G40 G1 X0 Y0
N42 G0 Z100
N44 M30
銑矩形槽:
銑矩形槽代碼如下:
#102=0.
N3#100=0.
#101=0.
#103=200.
#104=400.
G91G28Z0.
G0G90G54X0.Y0.
G43H1Z20.
M3S2000.
N4G0X#100Y#101
G01Z#102F200.
#102=#102-2.
IF[#102EQ-50.]GOTO1
GOTO2
N2
N4X#104F500.
Y#103
X#100
Y#101
#100=#100+10.
#101=#101+10.
#103=#103-10.
#104=#104-10.
IF[#100EQ100.]GOTO3
GOTO4
N3
N1
M5
M9
G91G28Z0.
G28Y0.
M30
銑傾斜3度的面:
軌跡:
銑傾斜3度的面的代碼如下:
O0001
#[#1+1*2]=1
G65P9012L1A0B0.1C4I100J3K0
M30
宏程序O9012代碼如下:
G54 G90 G00 X[#3] Y0 Z100
S500 M3
G01 Z0 F300
WHILE[#1LE10]DO1
#7= #1/TAN[#5]+#3
G1Z-#1 X#7
#8=#6/2-ROUND[#6/2]
IF[#8EQ0]GOTO10
G1Y0
GOTO20
N10 Y#4
N20#1=#1+#2
#6=#6+1
END1
G0
Z100
銑半球:
軌跡:
銑半球代碼如下:
G90G0G54X-10.Y0M3S4500
G43Z50.H1M8
#1=0.5
WHILE[#1LE50.]DO1
#2=50.-#1
#3=SQRT[2500.-[#2*#2]]
G1Z-#1F20
X-#3F500
G2I#3
#1=#1+0.5
END1
G0Z50.M5
M30
銑喇叭:
銑喇叭代碼如下:
M03 S500
M06 T01
#1=0
#2=0
G0 Z15
X150 Y0
N11
#2=30*SIN[#1]
#3=30+30*[1-COS[#1]]
G01 Z-#2 F40
G41 X#3 D01
G03 I-#3
G40 G01 X150 Y0
#1=#1+1
IF [#1 LE 90] GOTO 11
G0 Z30
M30
H. 用c語言畫矩形
每行起始和結束字元均是你的第3個宏散參數
矩形第1行和最後一行中間型絕畝是第3個參數,其他行根據第4個參數決定是空格或者第3個參數
程序可以這樣寫:
...
for ( m=0;m<a;m++ )
{
printf("%c",c); //第1列
if ( m==0 || m==a-1 ) //第1行和最後一行
for ( n=1;n<b-1;n++ ) printf("%c",c);
else //中間的行
for ( n=1;n<b-1;n++ ) if ( d==0 ) printf(" "); else printf("%c",c); //空心或否
printf("%c\n",c); //最後1列
}
或者可以寫:
for ( m=0;m<a;m++ )
{
printf("%c",c); //第1列
if ( m==0 || m==a-1 || d!=0) for ( n=1;n<b-1;n++ ) printf("%c",c);
else for ( n=1;n<b-1;n++ ) printf(" ");
printf("%c\n"卜森,c); //最後1列
}
I. 用C語言編寫程序 在屏幕上畫一個矩形
#include <math.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <graphics.h>
void polygon(int n, int x, int y, int r, int color, float arg, int fillstyle);
int main()
{
int GraphDriver;
int GraphMode;
float arg = 45, argd;
int a;
int direction;
int r;
int n = 4;
FILE *fp;
char szfilename[255] = {"c:\\cube.txt"};
GraphDriver = DETECT;
printf("Input size of cube: ");
scanf("%d", &r);
printf("Input direction(0-1): ");
scanf("%d", &direction);
if (direction == 0)
{
argd = 45;
}
else
{
argd = -45;
}
initgraph(&GraphDriver, &GraphMode, "");
polygon(n, 300, 200, r, 12, arg, 0);
while(1)
{
while(kbhit())
{
a = getch();
if (a == 27)
{
if ((fp = fopen(szfilename, "wt")) != NULL)
{
fprintf(fp, "%d\n%d\n", r, direction);
fclose(fp);
}
closegraph();
return 0;
}
if (a == 0)
{
getch();
polygon(n, 300, 200, r, 0, arg, 0);
arg += argd;
polygon(n, 300, 200, r, 12, arg, 0);
}
else
{
polygon(n, 300, 200, r, 0, arg, 0);
arg += argd;
polygon(n, 300, 200, r, 12, arg, 0);
}
}
}
}
void polygon(int n, int x, int y, int r, int color, float arg, int fillstyle)
{
double pi;
int i;
float x1[10], y1[10];
setcolor(color);
pi = atan(1) * 4;
arg = atan(1) / 45 * arg;
x1[1] = x + r * cos(2 * pi / n + arg);
y1[1] = y + r * sin(2 * pi / n + arg);
moveto(x1[1], y1[1]);
for (i = 2; i <= n; i++)
{
x1[i] = x + r * cos(2 * pi * i / n + arg);
y1[i] = y + r * sin(2 * pi * i / n + arg);
lineto(x1[i], y1[i]);
}
lineto(x1[1], y1[1]);
if (fillstyle != 0)
{
setfillstyle(SOLID_FILL, color);
floodfill(x, y, color);
}
}
J. 請問新代系統用宏程序,宏矩形格式是怎麼樣的
#1=0(程序前面)
N10。。。。
。。。。(加悶棚神工程序)
G50 W(工螞虧件長)
#1=#1+1(每執行完程序記錄數加一)
if[#1<6]GOTO10(判斷句,如果#1<6則跳到N10段)
G50 W-工件和橋長*6
M30