当前位置:首页 » 编程软件 » B4X编程

B4X编程

发布时间: 2022-05-09 11:44:32

1. 数控编程宏程序的指令

宏程序编程
一 变量
普通加工程序直接用数值指定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

2. 计算机编程中二进制时间制十六进制之间怎么转化,说的详细点

逢n进一的n就是基数,基数为几就有几个数字,如二进制基数为二,则有0,1两个;八进制基数为八有0,1,2,3,4,5,6,7八个。总之从0开始,最后一位位n-1。而如十六进制等基数超过十的,从十开始为A(相当于10进制的10),B,C,D,E,F(相当于10进制的15)。

权可以这样理解,一种进制的某一个数的每位都有一个权值m,并且权值为位数减一,如个位上的数的权值为0(位数1-1=0),十位为1(位数2-1=1)。

各个进制之间的转化一般分为两类。

十进制转换为其他进制:可以概括为“除基取余”。如十进制的12化为16进制,12/16=0余12,但十六进制是用C来表示的,所以十进制的10就是12进制的C;又如十进制30化为十六进制,30/16=1余14,第二次用商14/16=0余14,则十进制30转化为十六进制为1E(由后往前取),其他类推。十进制转化为二进制也是如此,如9/2=4余1,4/2=2余0,2/2=1余0,1/2=0余1,也就是1001了。10进制转化为其它进制,也是一样,但不常用,所以就不说了。

其它进制转化为十进制:可以概括为“按权展开”。知道了权值m,就可以转化了。 首先,每一位的位数乘以基数n的m次方,如八进制个位4,4x8^0=4(8^0等于8的0次方),百位4,4x8^2=256.最后加总。

另外一般默认十进制以d结尾,八进制为o,二进制为b,十六进制为h。

进制和16进制的转化:有些情况中,常会遇到2进制和16进制转化如果通过二进制转换为十进制,再转换为十六进制完成,有很大麻烦,下面有一种方法,提高效率。

二进制到十六进制的转换。我们可以将二进制数由右至左分为几部分,每一部分有四位(因为2的4次方为16),不足四位的补0,如10111b,可分为0001(补了3个0)和0111两部分。然后将两部分分别化为十六进制,第一个是1,第二个是7。最后合起来,为17h。

十六进制到二进制的转换。同理,我们可将十六进制的每一位,一分为四,再合并即可。如13h,分为1和3两部分,在一分为四,0001和0011,合并去0,就是10011。

3. 机械图纸中的B4x 8.5 DIN 332是什么意思

似乎是一种中心孔.

4. c语言编程

1.
#include<stdio.h>
#include<conio.h>
void main()
{int a[5][4],b[4][5],c[5][5],i,j,k;
printf("please enter a[5][4]\n");
for(i=0;i<5;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
printf("\n");
printf("please enter b[4][5]\n");
for(i=0;i<4;i++)
for(j=0;j<5;j++)
scanf("%d",&b[i][j]);
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
{c[i][j]=0;
for(k=0;k<4;k++)
c[i][j]+=a[i][k]*b[k][j];}}
for(i=0;i<5;i++)
{printf("\n");
for(j=0;j<5;j++)
printf("%d ",c[i][j]);}
printf("\n");
getch();
}
2.
/* 排数 */

#include "stdio.h"
#include "conio.h"

main()
{ int a[11];
int i,j,k,t,s;
printf("input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("the sorted numbers:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
printf("input another number:\n");
scanf("%d",&k);
a[10]=k;
for(j=0;j<10;j++)
for(i=0;i<10-j;i++)
if(a[i]>a[i+1])
{s=a[i];
a[i]=a[i+1];
a[i+1]=s;
}
printf("the another sorted numbers:\n");
for(i=0;i<11;i++)
printf("%d ",a[i]);

getch();
}
这是用两次冒泡法把它弄出来就可以的

3.
#include"stdio.h"
#include"math.h"
void main()
{float x,y,a,b,c,d;
int n=0;
y=1;
printf("input a,b,c,d:\n");
scanf("%f%f%f%f",&a,&b,&c,&d);
do{x=y;
y=x-(a*x*x*x+b*x*x+c*x+d)/(3*a*x*x+2*b*x+c);
n++;}
while(fabs(y-x)>1e-5);
printf("x=%f,\nthe iterations:%d",x,n);
getch();
}
好了,打的累死我了
给个最佳吧

5. 如何编程解三元五次方程

11x-6y-3=0 。
4x^2+(2y+1)^2-157=0 。

6. 除了c语言还有哪些编程语言

除了c语言还有c++,java ,c#、python 等,很多编程语言,各有长处,具体使用的时候根据自己的实际需求来就可以了。

7. 蓝光大师不能启动droib4x怎么办

你可以通过通用的系统修复方法进行修复,具体如下:

方法1,找一找是否是某款软件不正常运行,造成这种现象,打开系统任务管理器,查看相关进程,根据进程属性,确认是不是某款软件不正常运行,如果确认了该应用程序出错,解决方法如下:彻底卸载和清除此程序,并用 3_6_0 安 全 卫 士 或者 Q_Q 电 脑 管 家 清除注册表,然后重新安装该程序,最后更新到最新的稳定版本,不要安装测试版。


方法2、首先使用CTRL+ALT+Delete组合键打开电脑上的任务管理器,然后切换到【详细信息】页面;



方法3,如果程序(包括:一个或者多个)都出现该内存不能为"written",解决办法如下:首先卸载相关的旧的版本或者测试版的应用程序,更换正式版或者稳定版的应用程序;如果故障依旧,也可以尝试通过“该内存不能为writte”的通用解决方法来修复出错程序,具体方法:打开“开始”菜单——运行中输入cmd 回车,在命令提示符下输入“for %1 in (%windir%system32*.ocx) do regsvr32 /s %1”,之后,再输入以下内容并回车 “for %1 in (%windir%system32*.dll) do regsvr32 /s %1”(注:命令都不包括双引号,另外此命令修复的过程可能持续较长时间,请一定耐心等待修复进程完全结束)。



方法4、更新和修复所有系统漏洞,这样通过系统本身更新或打补丁来修复出错的程序,尝试来消除错误。


方法5、开机不断点击F8键,进入系统操作选单(如果是Win8,Win8.1,Win10系统,在看见开机画面后长按电源键关机,短时间内重复三次左右可以进入WinRE {Windows 恢复环境},但有的用户可能需要直接断开电源。这样开机后应该能出现高级恢复的界面了),选“最后一次正确配置”,重启电脑,看能否解决。


方法6、开机不断点击F8键,进入系统操作选单(如果是Win8,Win8.1,Win10系统,在看见开机画面后长按电源键关机,短时间内重复三次左右可以进入WinRE {Windows 恢复环境},但有的用户可能需要直接断开电源。这样开机后应该能出现高级恢复的界面了),然后寻找“安全模式”,并进入“安全模式”,如能成功进入,依次单击“开始”→“所有程序”→“附件”→“系统工具”→“系统还原”,出现“系统还原对话框”,选择“恢复我的计算机到一个较早的时间”。 这样可以用Windows系统自带的系统还原功能,还原到以前能正常开机的时候一个还原点。(如果有的话)


方法7、用系统安装光盘或者系统安装U盘,放入光驱或者插入USB接口,重启电脑,进入光盘安装系统状态或者进入U盘安装系统状态,等到启动界面闪过后,不要选安装系统,而是选修复系统,对目前系统进行修复(可能会运行很长时间,2-4小时都可能),耐心等待修复完成,看看是否能解决问题。

8. 简析什么是超线程编程

超线程编程是:
“超线程”技术(Hyper-Threading Technology)是Intel在2002年发布的一项新技术。Intel率先在XERON处理器上得到应用。由于使用了该技术,Intel将是世界上首枚集成了双逻辑处理器单元的物理处理器(其实就是在一个处理器上整合了两个逻辑处理器单元)的提供者,据说此项技术能够提高30%的处理器性能。所谓超线程技术就是利用特殊的硬件指令,把多线程处理器内部的两个逻辑内核模拟成两个物理芯片,从而使单个处理器就能“享用”线程级的并行计算的处理器技术。多线程技术可以在支持多线程的操作系统和软件上,有效的增强处理器在多任务、多线程处理上的处理能力。
超线程技术可以使操作系统或者应用软件的多个线程,同时运行于一个超线程处理器上,其内部的两个逻辑处理器共享一组处理器执行单元,并行完成加、乘、负载等操作。这样做可以使得处理器的处理能力提高30%,因为在同一时间里,应用程序可以充分使用芯片的各个运算单元。
对于单线程芯片来说,虽然也可以每秒钟处理成千上万条指令,但是在某一时刻,其只能够对一条指令(单个线程)进行处理,结果必然使处理器内部的其它处理单元闲置。而“超线程”技术则可以使处理器在某一时刻,同步并行处理更多指令和数据(多个线程)。可以这样说,超线程是一种可以将CPU内部暂时闲置处理资源充分“调动”起来的技术。

实现超线程的五大前提条件:
(1)需要CPU支持
目前正式支持超线程技术的CPU有Pentium4 3.06GHz 、2.40C、2.60C、2.80C 、3.0GHz、3.2GHz以及Prescott处理器,还有部分型号的Xeon。
(2)需要主板芯片组支持
正式支持超线程技术的主板芯片组的主要型号包括Intel的875P,E7205,850E,865PE/G/P,845PE/GE/GV,845G(B -stepping),845E。875P,E7205,865PE/G/P,845PE/GE/GV芯片组均可正常支持超线程技术的使用,而早前的 845E以及850E芯片组只要升级BIOS就可以解决支持的问题。SIS方面有SiS645DX(B版)、SiS648(B版)、SIS655、 SIS658、SIS648FX。VIA方面有P4X400A、P4X600、P4X800。
(3)需要主板BIOS支持
主板厂商必须在BIOS中支持超线程才行。
(4)需要操作系统支持
目前微软的操作系统中只有Windows XP专业版及后续版本支持此功能,而在Windows2000上实现对超线程支持的计划已经取消了。
(5)需要应用软件支持
一般来说,只要能够支持多处理器的软件均可支持超线程技术,但是实际上这样的软件并不多,而且偏向于图形、视频处理等专业软件方面,游戏软件极少有支持的。应用软件有Office 2000、Office XP等。另外Linux kernel 2.4.x以后的版本也支持超线程技术。(T117)

9. C语言编程问题

#include<stdio.h>
#include<malloc.h>

int compare( float x,float y)
{
if(x==y)
return(1);
else if (x<y)
return(-1);
else
return(0);
}
struct LNode {
float coef;
float expn;
struct LNode *next;
};
struct LNode *linklist,*p;

struct LNode *creat(void)
{
int n;
struct LNode *head;
struct LNode *p1,*p2;
n=0;
p1=p2=(struct LNode*)malloc(sizeof(struct LNode));
scanf("%f,%f",&p1->coef,&p1->expn);
head=NULL;
while(p1->coef!=0)
{
n=n+1;
if(n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(struct LNode*)malloc(sizeof(struct LNode));
scanf("%f,%f",&p1->coef,&p1->expn);
}
p2->next=NULL;
return(head);
}

void print(struct LNode *head)
{
struct LNode *m;
m=head;
if(head!=NULL)
{
printf("The final result is\n");
do
{
printf(" %f Y^ %f+",m->coef,m->expn);
m=m->next;
}while(m!=NULL);
}
printf("\n");
}
main()
{
float sum;
struct LNode *Pa,*Pb,*rear,*q,*A,*B;
int compare(float x,float y);
void print(struct LNode *head);
struct LNode *creat(void);
printf("please input data of first polyon\n");
A=creat();
printf("please input data of second polyon\n");
B=creat();

Pa=A->next;
Pb=B->next;

rear=A;
while(Pa&&Pb)
{
switch(compare(Pa->expn,Pb->expn))
{
case 0: rear->next=Pb;
rear=Pb;
Pb=Pb->next;
break;
case -1:rear->next=Pa;
rear=Pa;
Pa=Pa->next;
break;
case 1: sum=(Pa->coef)+(Pb->coef);
if(sum==0)
{
rear->next=Pa->next;
free(Pa);
Pa=rear->next;
q=Pb->next;
free(Pb);
Pb=q;
}
else
{
Pa->coef=sum;
rear->next=Pa;
rear=Pa;
Pa=Pa->next;
q=Pb->next;
free(Pb);
Pb=q;
}
break;
}
}
if(Pa){rear->next=Pa;}
if(Pb){rear->next=Pb;}
print(A);
}

现在可以运行了,你自己再看看。。。。。

热点内容
解压体育馆 发布:2025-05-13 21:27:48 浏览:263
哪家编程课 发布:2025-05-13 21:27:04 浏览:895
为什么文件要压缩 发布:2025-05-13 21:16:07 浏览:50
局域网怎么搭建校时服务器 发布:2025-05-13 21:11:32 浏览:677
存储器读写实验心得 发布:2025-05-13 21:09:23 浏览:15
派派手机如何设置密码 发布:2025-05-13 21:08:02 浏览:774
狱辱实验栋第2集在线ftp 发布:2025-05-13 21:02:06 浏览:11
安卓桌面应用如何变大 发布:2025-05-13 20:59:39 浏览:361
解压通知单有什么用 发布:2025-05-13 20:58:37 浏览:567
俄罗斯方块的编程 发布:2025-05-13 20:51:08 浏览:611