當前位置:首頁 » 編程軟體 » 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);
}

現在可以運行了,你自己再看看。。。。。

熱點內容
appleid為什麼連接伺服器出現問題 發布:2025-05-13 18:17:37 瀏覽:970
書翁怎麼配置 發布:2025-05-13 18:17:36 瀏覽:911
雲資料庫mongodb 發布:2025-05-13 18:16:12 瀏覽:773
A7編程 發布:2025-05-13 18:15:26 瀏覽:741
python視圖 發布:2025-05-13 18:14:01 瀏覽:758
win為什麼干不過安卓 發布:2025-05-13 18:12:27 瀏覽:586
文件夾只讀win8 發布:2025-05-13 18:11:41 瀏覽:272
xp安裝php 發布:2025-05-13 18:04:30 瀏覽:183
sqlserver介紹 發布:2025-05-13 17:58:00 瀏覽:4
雲閃付安卓版哪個版本好用 發布:2025-05-13 17:57:16 瀏覽:187