导航:首页 > 程序命令 > 90宏命令编写

90宏命令编写

发布时间:2022-06-13 07:04:39

Ⅰ 魔兽世界里面的宏该怎么写

判断表达式,判断式(Option Set):由若干判断项组成,封闭在方括号[]中的真值表达式。继承自安全模板,能在受保护环境下允许运作的唯一判断形式。



一,写宏的基本法则



宏最主要的应用是带有判断的施法,这也是下文主要应用的模型。一个典型的这种宏可以抽象成以下形式:



Code(c):



/cast [表达式1-1][表达式1-2]技能1;[表达式2]技能2;技能3



--宏的模型



[项1,项2,项3, ...]



--表达式的模型



--注:表达式中定义单位target=或@不是一种判断条件,但它重新指定了后续所有涉及目标的判断和最终技能施放的对象。比如指定了@mouseover后,后续的help/exists/dead之类的判断都会基于鼠标悬停的单位。



在这个模型下,讨论:


1.逻辑及判断顺序(法则一,!极为重要)



涉及判断就有真值,但是不要被这个带有浓重编程和数学色彩的词吓倒。概括来说就两句话:



<1>方括号内各分项之间是AND的关系,用逗号间隔,只有各个分项都为真整个方括号(表达式)才为真。方括号内各项之间没有顺序要求。



<2>各个方括号之间是OR的关系,判断顺序是从左至右,遇到第一个方括号为真时即结束判断,而忽略其后的所有项目。



大部分宏出错/不能用/判断混乱的原因就是在此。写宏的时候必须把条件强的(或者说优先级高的)判断放到前面,弱的(泛用型的)判断放到后面。举个例子,昨天回答了问答区一个人的提问,他的宏



Code(c):



1:#showtooltip



2:/cast [nomod,spec:2]炼狱冲击;[nomod,target=mouseover,exists,harm,spec:2]炼狱冲击



无法对鼠标悬停目标放。究其原因就是,[nomod,spec:2]这一个表达式弱于后者


[nomod,target=mouseover,exists,harm,spec:2],后者不仅需要无修饰键和第二专精,同时需要存在一个可攻击的鼠标悬停目标才会为真,导致了后者为真时前者一定为真。


按照上文的<2>,从左至右的顺序将永远是前者表达式率先为真,因而无法对悬停目标施放炼狱冲击。修改的方法很简单,把两个判断调换位置即可:



Code(c):



1:#showtooltip



2:/cast [nomod,target=mouseover,exists,harm,spec:2]炼狱冲击;[nomod,spec:2]炼狱冲击



3:--修改后的宏



当然我在回答中还给出了优化方案,后文会详细介绍如何优化。



2. 技能整合(法则二)



对于把多个技能整合进一个/cast命令里,在不同的条件下自动判断施放不同的技能,只有一条格式法则:不同技能之间用分号;间隔。具体可以参照本章开头提出的宏模型。



要注意,一个/cast任何情况下至多只能施放一个技能,而且各个方括号之间仍旧遵循上文提出的<2>判断顺序法则。



3. 技能堆叠(法则三)



如果要做到一键同时放出两个或更多的技能,必须有多行/cast命令,这就是技能堆叠。这种宏通常用于爆发技能,喝药开饰品开技能需要同时完成。



其法则是:至多只能拥有一个产生/受到GCD影响的技能,幸运的是爆发类技能和药水等物品几乎都设计成不占用GCD。



Code(c):



1:#showtooltip



2:/cast 奥术强化



3:/use 13



4:/use 14



这样的宏是可行的,因为饰品和[奥术强化]本身并不产生GCD,甚至再加两行



Code(c):



/cast 气定神闲



/cast 奥术冲击



也是合法的。但是,形如以下的宏是非法的:



Code(c):



1:#showtooltip



2:/cast 驱邪术



3:/cast 审判



4:/cast 十字军打击



因为三者都产生GCD和/或被GCD影响,最终的效果是只相当于第一行[驱邪]有用。不要妄图这种方法能实现按优先级施放技能。



4. 技能替代(法则四)



技能替代是一个十分有意思的机制,自CTM引进。这种机制允许某[基础技能]在特殊情况下被另一个[替代技能]替代,而即便在替代的情况下,通过宏命令施放[基础技能]时会自动定向到[替代技能],其最终的结果是正常施放[替代技能],宏的图标也会随之变化。



这种机制有两种情况:



1)单向的替代,/cast [替代技能]不会施放出基础技能,但是/cast [基础技能]是任何情况下通用的。



举例:神牧的[圣言术:罚]在黄轮和蓝轮下转换成[静]和[佑],只要宏



Code(c):



1:#showtooltip



2:/cast 圣言术:罚



就能自动根据轮的颜色转换技能,但因为这是[罚]被单向地替代,反过来如果宏里写[静]或[佑],在红轮下就会放不出技能。



2)双向的等价,[基础技能]和[替代技能]是完全等价的,就如同一个技能,任何情况下用宏施放任意一个技能的结果都是放出当前激活的那一个。比如[腐蚀术]和[献祭]两者,SS玩家可以分别在不同天赋下试试。



这种机制对于写宏非常有利,我们不需要为了技能被替换而另开一个宏。更深入的一点,以下两个技能需要重点提及:



Code(c):



1:#showtooltip



2:/cast 秘法炸弹



3:--这个技能对应法师75级天赋中的[虚空风暴],[寒冰炸弹]和[活动炸弹]。[秘法炸弹]被单向替代。



Code(c):



1:#showtooltip



2:/cast 神圣爆发



3:--这个技能对应牧师90级天赋,也是单向替代。



如果其他职业也有类似的天赋基础技能,请欢迎补充。



二,写宏的灵魂:逻辑和优先级



笔者和自己圈子里的很多人说过,写宏其实和编程没多大关系,需要的是一点数学的逻辑思维。尤其是那些技能整合宏,对在各种判断条件下到底哪一个技能才是优先的必须心里有谱。


实际上这是上文中法则一之<2>的推演,本质上仍旧是按照越优先越靠前的方式排列整个技能和判断序列。正因如此,上文法则一才是宏最最重要的法则,而优先级正是写宏的灵魂。



Code(c):



1:#showtooltip



2:/cast [help,dead][mod:shift,help][mod:shift,@player]Soulstone;[mod]Soul


Link;Unending Resolve



3:/targetlasttarget [help,dead]



4:--比如这个术士宏,它的逻辑等价于:



5:--如果[目标死亡且可协助]或[按住shift并且目标可协助]或[其他按住shift的情况下对自己]施放[灵魂石]



6:--否则,如果[有按下其他任何修饰键]则施放灵魂链接



7:--否则任何其他情况下放盾墙



8:--此外,如果[目标死亡且可协助]还会顺带切换回之前的目标,目的是战复后目标切回怪身上



有人可能会问,[help,dead][mod:shift,help][mod:shift,@player]这一串看不懂,为什么先来个shift修饰后面又来一个,这里就涉及到优先级的问题了。



首先[help,dead]指定了[目标死亡且可协助]的情况,它是优先级最高的,只要满足这两个条件,其他任何条件不管满足不满足都会战复目标。



其次,[mod:shift,help]这一判断代表[按住shift并且目标可协助],但是它还有个隐藏条件。因为要判断到这一层,首先必须前者[help,dead]为假,也就是当[目标不可协助或者目标不死]的情况。


所以其实这个判断应该是[(目标不可协助或者目标不死)并且按住shift并且目标可协助],由于不可协助和可协助互斥,所以实际判断的真值应该是[目标不死并且按住shift并且目标可协助],满足这个条件,对目标放灵魂石。



再次,[mod:shift,@player],这里只用了一个判断即shift修饰,上文说过@player不是判断条件。但因为前一个判断已经有一种按下shift的情况被取走了,那么这里的判断表示[其他按住shift的情况下对自己]施放灵魂石。



然后,[mod]是个广义的修饰键判断,当alt/shift/ctrl中任何一个或多个被按下是都为true。当然shift在前面的判断中被取走,那么这里表示的是[按下alt/ctrl中任何一个或两个],他等同于[有按下其他任何修饰键]则施放灵魂链接。



最后,无尽决心没有任何判断,它是恒真的。也就是在其他任何条件下都会施放无尽决心。



上面这个例子有些复杂,下面会通过一个相对简单的实例来阐述如何运用这种模式写宏。



法师法术反制及焦点反制/悬停解诅咒整合宏



要求是:焦点可攻击按住任何修饰键都是焦点反制,不按修饰键且敌对目标是对目标反制,鼠标悬停到友善目标是解诅咒,目标是友善目标是解诅咒,默认状况下是对目标的反制。



首先就是厘清优先级。



那么整理之后的优先级就是:



第一优先级:焦点反制敌对目标,判断式[mod,@focus,exists,harm]



第二优先级:悬停解可协助目标诅咒,判断式[@mouseover,exists,help]



第三优先级:对友善目标解诅咒,判断式[help]



第四优先级:敌对目标反制,判断式[harm]



第五优先级:反制,无判断式(恒真)



*要注意,harm和help有关系,但并不是help=noharm或者harm=nohelp。harm代表目标可攻击,help代表目标可协助(能给他加血上buff等),此外还有一种既不能攻击也不能协助的状态,称为"被动(Passive)"。



现在可以直接写出宏了,那就是:



Code(c):



1:#showtooltip



2:/cast [mod,@focus,exists,harm]法术反制;[@mouseover,exists,help][help]解除诅咒;[harm]法术反制;法术反制



3:--第一行的#showtooltip不是命令行,它的作用是能在鼠标提示上显示技能的有关信息



这个宏运作起来是符合要求的,但是可以继续优化。从逻辑上而言,第四与第五优先级可以合并,而且exists没必要与harm和help连用。因此最终的宏是:



Code(c):



1:#showtooltip



2:/cast [mod,@focus,harm]法术反制;[@mouseover,help][help]解除诅咒;法术反制



(1)90宏命令编写扩展阅读:


常用宏模板:


1.治疗/伤害技能混合宏,附带指向施法,或者用于解buff和攻击性技能组合:



Code(c):



1:#showtooltip



2:/cast [@mouseover,help]治疗技能;[harm]攻击技能;治疗技能



2. 治疗指向宏,无指向对目标:



Code(c):



1:#showtooltip



2:/cast [@mouseover,help][]治疗技能



3. 经典的修饰键整合宏:



Code(c):



1:#showtooltip



2:/cast [mod]技能1;技能2



或者更多的技能:



Code(c):



1:#showtooltip



2:/cast [mod:shift]技能1;[mod:ctrl]技能2;[mod]技能3;技能4



4. 翻页宏:



Code(c):



1:#showtooltip



2:/cast 技能



3:/changeactionbar n



这个宏最近已经被玩坏了,n可取1-6。



5. 花式宏,双修饰键/三修饰键判断:



Code(c):



1:#showtooltip



2:/cast [mod:alt,mod:ctrl,mod:shift]技能



按照需要自己整合,就是这个套路。



6. 花式用法:



拆分1+alt和alt+1(按键顺序)。



*1+alt指的是先按住1然后不放去按alt,保持alt松开1(此时放技能),最后松开alt。



这个用法需要关闭界面设置中的点击施法选项。



按键绑定中绑定alt+1,在这个动作按钮上放技能1



建立一个宏



Code(c):



1:#showtooltip



2:/cast [mod]技能2;技能3



把这个宏放到键1上。



其结果就是alt+1放出技能1,1+alt放出技能2,直接按1是技能3。

Ⅱ 新人求助 罗技G90怎么设置鼠标宏

打开驱动,鼠标大图右侧的三个图标,点右边的带齿轮的计算机图标为自动游戏检测方式,这样才能设宏,再点下面图标两个蓝箭头指的鼠标小图标,这时出现按键设定,点击鼠标大图上的按键位置,点编辑命令,“按键”是映射键盘单键,“多键”是设定宏,键盘动作是可以录制的,鼠标动作不能录只能点击右键插入,“文本块”可以录制长文本,可以用来当宏动作,不过不可以插入鼠标动作;
“鼠标功能”是一般的最基本的动作,不可插入宏;
罗技的鼠标很怪,必须保留1个左键和右键,占用宝贵的按键资源,在所有的配置文件都是这样,宏驱动必须打开的情况下才能使用宏。

Ⅲ 魔兽世界宏命令制作

2.0-TBC 法师PVP用宏大汇集.欢迎各路高手补充(此帖是转的希望大家不要拿这个说事)

2.0-TBC 法师PVP用宏大汇集.欢迎各路高手补充Sample TextSample Text2.0-TBC 法师PVP用宏大汇集.欢迎各路高手补充Sample Text2.0-TBC 法师PVP用宏大汇集.欢迎各路高手补充.继续更新2.0常用插件下载地址.本帖将持续更新.2007.6.26
随着2.0的到来,宏命令的全面修改,过去大多数宏没有办法使用,于是我测试了一点实用的新宏,都可以正常使用,主要用于PvP,这里与大家分享一下。

2.0常用插件下载地址. http://www.wowui.cn/ui/wow2/index.html
此网页不属于NGA网站,NGA不保证其安全性
继续访问 取消 不再提示我[ http://www.wowui.cn/ui/wow2/index.html ]

说明:
1, "#showtooltip+技能名字" 这个命令是使宏图标显示出技能的冷却,如果装有Cooldown显示类插件,可以以此命令实现宏图标显示技能冷却. 同时鼠标移动带该宏图标上不会像过去一样只显示宏名字,而是显示"技能名字"这个你所输入的技能的说明.
2, "/stopcasting" 同1.12版本的"/script SpellStopCasting();"效果一样,只是旧版的不好用了,换个方式

瑟银手雷:
--------------------------------
#showtooltip 瑟银手雷
/stopcasting
/use 瑟银手雷
--------------------------------
因为铁皮手雷在更新后对53级以上目标就会有几率失败而对60级的目标几乎是90%以上的失败率所以基本作废了,喜欢投手雷的朋友可以换瑟银玩.
宏同过去的铁皮宏,使用途中按为取消.

双开宏:
--------------------------------
#showtooltip 奥术能量
/cast 奥术能量
/stopcasting
/use 14
--------------------------------
注: 14是装饰品栏下一格,如果你伤害护符放在上一格请把14换成13,下同.

闪现宏:
--------------------------------
#showtooltip 闪现术
/stopcasting
/cast 闪现术
--------------------------------
中断当前正在施放的法术直接闪现.

急冷宏:
--------------------------------
#showtooltip 急速冷却
/stopcasting
/cast 急速冷却
--------------------------------
中断当前正在施放的法术直接急冷.

反制宏:
--------------------------------
#showtooltip 法术反制
/stopcasting
/Cast 法术反制
--------------------------------
中断当前正在施放的法术直接反制.

火球/炎爆宏:
--------------------------------
#showtooltip 火球术
/cast [modifier:alt] 炎爆术; 火球术
--------------------------------
直接按是放火球,按住Alt按是放炎爆.

冰箭/1级冰箭宏:
--------------------------------
#showtooltip 寒冰箭
/cast [modifier:alt] 寒冰箭(等级 1); 寒冰箭
--------------------------------
同上面的火球宏,直接按满级冰箭,按住Alt按是1级冰箭.如果想把Alt换成别的键请修改[modifier:alt]中的"alt",可以改成ctrl,shift等
当然也可以用同样方法实现火球/1级火球的合并.

Nova宏:
--------------------------------
#showtooltip 冰霜新星(等级 1)
/stopcasting
/cast [nomounted] 冰霜新星(等级 1)
/dismount [mounted]
--------------------------------
不在坐骑上则中断当前正在施放的法术放1级冰环,在坐骑上则下马什么都不做(由于2.0的修改,直接按技能会空中下马并放出技能,习惯Ezdismount的按技能下马再按技能才放的朋友可能不习惯,就可以用这个)

冰护宏:
--------------------------------
#showtooltip 寒冰护体
/stopcasting
/cast 寒冰护体
--------------------------------

无视公共冷却开关冰箱宏:
--------------------------------
#showtooltip 寒冰屏障
/stopcasting
/cancelAura 寒冰屏障
/cast 寒冰屏障
--------------------------------
有冰箱则关冰箱,无冰箱则中断施法开冰箱.

从大到小按顺序吃蓝石宏:
--------------------------------
#showtooltip 法力红宝石
/use 法力红宝石
/use 法力黄水晶
/use 法力翡翠
/use 法力玛瑙
--------------------------------
(吃其他东西也同理/use 物品名称)

宝宝+远程Nova宏:
--------------------------------
#showtooltip [pet] 冰冻术
#showtooltip [nopet] 召唤水元素
/cast [nopet] 召唤水元素
/click [pet] PetActionButton5
--------------------------------
没有宝宝的情况下图标显示"召唤水元素"技能说明并显示该技能冷却,有宝宝的情况下图标显示宝宝的远程冰环"冰冻术"技能说明及冷却.
在没有宝宝时按下则召唤宝宝,有宝宝是按则施放宝宝的远程冰冻术.
注: 宝宝的Nova在默认宠物技能条的第5格,请不要移动它,如果放到别的格子请自行修改PetActionButton5
这句中"5"为相应的数字.

护符单开气定炎爆:
--------------------------------
#showtooltip 气定神闲
/use 14
/cast 气定神闲
/stopcasting
/cast 炎爆术
--------------------------------
如果不用开护符就吧/use 14这行去掉,如果想改成气定冰箭就把"炎爆术"改成"寒冰箭".

双开气定炎爆:
--------------------------------
#showtooltip 气定神闲
/stopcasting
/cast 奥术能量
/stopcasting
/use 14
/cast 气定神闲
/stopcasting
/cast 炎爆术
--------------------------------
同样"炎爆术"改成"寒冰箭"就是双开气定冰箭宏了

一楼朋友补充的宏修改成中文版适用:
召唤水元素和水元素攻击宏:
-----------------------------------------
/cast [nopet] 召唤水元素
/stopmacro [target=pettarget, exists]
/petattack
-----------------------------------------
注:点击一次将召唤水元素
再点一次水元素将攻击你的目标,在召唤后的lag时间内重复点击可以让宠物立即进入攻击状态并不会取消第一个水球.
绷带宏

--------------------------
/use 战歌峡谷符文布绷带
/use 污染者的符文布绷带
/USE 奥特兰克厚符文布绷带
/USE 厚符文布绷带
---------------------------
不用再换绷带了.一键搞定.感谢提供者.

奥爆宏

----------------------------
/cast [noharm] 魔爆术(等级 1);魔爆术
---------------------------------
有目标时顶级奥爆.无目标时1级

下面是引用kidwish于2007-06-27 10:14发表的Re:2.0-TBC 法师PVP用宏大汇集.欢迎各路高手补充.继续更新2.0常用插件下载地:
1键 龙息3连招
#showtooltip
/stopcasting
/castsequence reset=20 龙息术, 灼烧, 冲击波

1键 双魔法防护盾
#showtooltip
/stopcasting
/cast [modifier:shift] 防护冰霜结界; 防护火焰结界

反控制宏(13 - 第一个饰品位放徽记), 按下ALT使用种族技能,不按使用徽记
#showtooltip
/stopcasting
/cast [modifier:alt] 逃脱大师(亡灵意志,石像形态)
/stopmacro [modifier:alt]
/use 13

换高精神武器唤醒再换回原武器宏
#showtooltip
/equip [modifier:shift] 搜魂者
/stopmacro [modifier:shift]
/equip 娅尔罗的意志
/cast 唤醒

1键 做宝石宏
/showtooltip
/castsequence 制造魔法红宝石, 制造魔法黄水晶, 制造魔法翡翠, 制造魔法玛瑙

1键 护甲 鼠标右冰甲,其他魔甲
#showtooltip
/cast [button:2] 冰甲术; 魔甲术;

1键 加智力 目标自己,鼠标右,给自己加单体智力; 目标友放,鼠标左,单体智力; 按住ctrl,鼠标左键,在队伍里,加全体智力
#Showtooltip
/cast [target=player,button:2] 奥术智慧
/cast [button:1] 奥术智慧
/cast [modifier:ctrl,group,button:1] 奥术光辉

1键 厨师吃喝宏 鼠左键吃面包,鼠右键喝水,按住alt 鼠左键 做面包, 按住alt 鼠右键 做水

#show none
/use [nomodifier:alt,button:1] 魔法肉贵面包
/use [nomodifier:alt,button:2] 魔法晶水
/cast [modifier:alt, button:1] 制造魔法肉贵面包
/cast [modifier:alt,button:2] 制造魔法晶水

冰环集成宏, 按一下冰环,按2下有水元素则冰环, 无水元素则招, 再按水元素冰环
/castsequence reset=21 冰霜新星, [nopet] 召唤水元素
/click [pet] PetActionButton5

群控超级羊
/focus [button:1]
/cast [button:1,nomodifier:shift] 变形术:猪; [target=focus,exists,button:2,nomodifier:shift] 变形术:猪
/stopmacro [nomodifier:shift]
/target [button:2] focus
/castsequence 气定神闲, 变形术:猪
随机变形猪或羊
/script if UnitCanAttack("target","player") then CastSpellByName("魔暴术");else CastSpellByName("魔暴术(等级 1)");end;
随机变羊,猪,乌龟宏
/script local s,m,r={"",":龟",":猪"},{"%t变羊了","%t是乌龟","%t是猪"},random(3); CastSpellByName("变形术"..s[r]);SendChatMessage(m[r],"yell");

冰箱宏

#showtooltip 寒冰屏障
/stopcasting
/cancelAura 寒冰屏障
/castSequence reset=240 寒冰屏障,急速冷却

按一下冰箱,再按一下出冰箱。冰箱冷却中,按一下急冷,再按一下冰箱。没加浮冰的把240换成300。
羊上侦测宏

#showtooltip 变形术
/castsequence reset=5 变形术, 侦测魔法

侦测必须羊后5秒上 否则会再变一次羊
神龟
/castSequence reset=24 寒冰护体,法力护盾
定羊
#showtooltip 气定神闲
/cast 气定神闲
/stopcasting
/cast 变形术:猪

参考资料:http://bbs.game.mop.com/index.html?url=http://bbs.game.mop.com/index.php?gid=2#

Ⅳ 数控编程宏程序的指令

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

Ⅳ 数控车床宏程序怎么编啊

宏程序序
大家都在问宏程序~其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用..宏一般分为A类宏和B类宏.A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序则是
以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广.由于现在B类宏程序的大量使
用很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如法兰克OTD系统中由于它的MDI键盘上没有公式符号,连最简单的等于号都没有,为此如果应用B类宏程序的话就只能在计算机上编好再通过RSN-32接口传输的数控系统中,可是如果我们没有PC机和RSN-32电缆的话怎么办呢,那么只有通过A类宏程序来进行宏程序编制了,下面我介绍一下A类宏的引用;
A类宏是用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式输入的xx的意思就是数值,是以um级的量输入的,比如你输入100那就是0.1MM~~~~~.#xx就是变量号,关于变量号是什么意思再不知道的的话我也就没治了,不过还是教一下吧,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量,一般OTD系统中有#0~~~#100~#149~~~#500~#531关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据.我们如果说#100=30那么现在#100地址内的数据就是30了,就是这么简单.好现在我来说一下H代码,大家可以看到A类宏的标准格式中#xx和xx都是数值,而G65表示使用A类宏,那么这个H就是要表示各个数值和变量号内的数值或者各个变量号内的数值与其他变量号内的数值之间要进行一个什么运算,可以说你了解了H代码A类宏程序你基本就可以应用了,好,现在说一下H代码的各个含义:
以下都以#100和#101和#102,及数值10和20做为例子,应用的时候别把他们当格式就行,
基本指令:
H01赋值;格式:G65H01P#101Q#102:把#102内的数值赋予到#101中
G65H01P#101Q#10:把10赋予到#101中
H02加指令;格式G65 H02 P#101 Q#102 R#103,把#102的数值加上#103的数值赋予#101
G65 H02 P#101 Q#102 R10
G65 H02 P#101 Q10 R#103
G65 H02 P#101 Q10 R20
上面4个都是加指令的格式都是把Q后面的数值或变量号内的数值加上R后面的数
值或变量号内的数值然后等于到P后面的变量号中.
H03减指令;格式G65 H03 P#101 Q#102 R#103,把#102的数值减去#103的数值赋予#101
G65 H03 P#101 Q#102 R10
G65 H03 P#101 Q10 R#103
G65 H03 P#101 Q20 R10
上面4个都是减指令的格式都是把Q后面的数值或变量号内的数值减去R后面的数
值或变量号内的数值然后等于到P后面的变量号中.
H04乘指令;格式G65 H04 P#101 Q#102 R#103,把#102的数值乘上#103的数值赋予#101
G65 H04 P#101 Q#102 R10
G65 H04 P#101 Q10 R#103
G65 H04 P#101 Q20 R10
上面4个都是乘指令的格式都是把Q后面的数值或变量号内的数值乘上R后面的数
值或变量号内的数值然后等于到P后面的变量号中.
H05除指令;格式G65 H05P#101 Q#102 R#103,把#102的数值除以#103的数值赋予#101
G65 H05 P#101 Q#102 R10
G65 H05 P#101 Q10 R#103
G65 H05 P#101 Q20 R10
上面4个都是除指令格式都是把Q后面的数值或变量号内的数值除以R后面的数
值或变量号内的数值然后等于到P后面的变量号中.(余数不存,除数如果为0的话会出现112报警)
三角函数指令:
H31 SIN正玄函数指令:格式G65 H31 P#101 Q#102 R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*SIN#103,也就是说可以直接用这个求出三角形的另
一条边长.和以前的指令一样Q和R后面也可以直接写数值.
H32 COS余玄函数指令:格式G65 H32 #101 Q#102 R#103;含义Q后面的#102是三角形的斜边
R后面的#103内存的是角度.结果是#101=#102*COS#103,也就是说可以直接用这个求出三角形的
另一条边长.和以前的指令一样Q和R后面也可以直接写数值.
H33和H34本来应该是TAN 和ATAN的可是经过我使用得数并不准确,希望有知道的人能够告诉我是为什么?
开平方根指令:
H21;格式G65 H21 P#101 Q#102 ;意思是把#102内的数值开了平方根然后存到#101中(这个指令是非常重要的如果在车椭圆的时候没有开平方跟的指令是没可能用宏做到的.
无条件转移指令:
H80;格式:G65 H80 P10 ;直接跳到第10程序段
有条件转移指令:
H81 H82 H83 H84 H85 H86 ,分别是等于就转的H81;不等于就转的H82;小于就转的H83;大于就转的H84;小于等于就转的H85;大于等于就转的H86;
格式:G65 H8x P10 Q#101 R#102;将#101内的数值和#102内的数值相比较,按上面的H8x的码带入H8x中去,如果条件符合就跳到第10程序段,如果不符合就继续执行下面的程序段.
用 户 宏 程 序
能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。
l 所存入的这一系列指令——用户宏程序
l 调用宏程序的指令————宏指令
l 特点:使用变量
一. 变量的表示和使用
(一) 变量表示
#I(I=1,2,3,…)或#[<式子>]
例:#5,#109,#501,#[#1+#2-12]
(二) 变量的使用
1. 地址字后面指定变量号或公式
格式:<地址字>#I
<地址字>-#I
<地址字>[<式子>]
例:F#103,设#103=15则为F15
Z-#110,设#110=250则为Z-250
X[#24+#18*COS[#1]]
2. 变量号可用变量代替
例:#[#30],设#30=3则为#3
3. 变量不能使用地址O,N,I
例:下述方法下允许
O#1;
I#26.00×100.0;
N#3Z200.0;
4. 变量号所对应的变量,对每个地址来说,都有具体数值范围
例:#30=1100时,则M#30是不允许的
5. #0为空变量,没有定义变量值的变量也是空变量
6. 变量值定义:
程序定义时可省略小数点,例:#123=149
MDI键盘输一. 变量的种类
1. 局部变量#1~#33
一个在宏程序中局部使用的变量
例:A宏程序B宏程序
……
#10=20X#10不表示X20
……
断电后清空,调用宏程序时代入变量值
2. 公共变量#100~#149,#500~#531
各用户宏程序内公用的变量
例:上例中#10改用#100时,B宏程序中的
X#100表示X20
#100~#149断电后清空
#500~#531保持型变量(断电后不丢失)
3. 系统变量
固定用途的变量,其值取决于系统的状态
例:#2001值为1号刀补X轴补偿值
#5221值为X轴G54工件原点偏置值
入时必须输入小数点,小数点省略时单位为μm
一. 运算指令
运算式的右边可以是常数、变量、函数、式子
式中#j,#k也可为常量
式子右边为变量号、运算式
1. 定义
#I=#j
2. 算术运算
#I=#j+#k
#I=#j-#k
#I=#j*#k
#I=#j/#k
3. 逻辑运算
#I=#JOK#k
#I=#JXOK#k
#I=#JAND#k
4. 函数
#I=SIN[#j] 正弦
#I=COS[#j] 余弦
#I=TAN[#j] 正切
#I=ATAN[#j] 反正切
#I=SQRT[#j]平方根
#I=ABS[#j]绝对值
#I=ROUND[#j]四舍五入化整
#I=FIX[#j]下取整
#I=FUP[#j]上取整
#I=BIN[#j]BCD→BIN(二进制)
#I=BCN[#j]BIN→BCD
1. 说明
1) 角度单位为度
例:90度30分为90.5度
2) ATAN函数后的两个边长要用“1”隔开
例:#1=ATAN[1]/[-1]时,#1为了35.0
3) ROUND用于语句中的地址,按各地址的最小设定单位进行四舍五入
例:设#1=1.2345,#2=2.3456,设定单位1μm
G91X-#1;X-1.235
X-#2F300;X-2.346
X[#1+#2];X3.580
未返回原处,应改为
X[ROUND[#1]+ROUND[#2]];
4) 取整后的绝对值比原值大为上取整,反之为下取整
例:设#1=1.2,#2=-1.2时
若#3=FUP[#1]时,则#3=2.0
若#3=FIX[#1]时,则#3=1.0
若#3=FUP[#2]时,则#3=-2.0
若#3=FIX[#2]时,则#3=-1.0
5) 指令函数时,可只写开头2个字母
例:ROUND→RO
FIX→FI
6) 优先级
函数→乘除(*,1,AND)→加减(+,-,OR,XOR)
例:#1=#2+#3*SIN[#4];
7) 括号为中括号,最多5重,园括号用于注释语句
例:#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)
一. 转移与循环指令
1.无条件的转移
格式:GOTO1;
GOTO#10;
2.条件转移
格式:IF[<条件式>]GOTOn
条件式:
#jEQ#k 表示=
#jNE#k 表示≠
#jGT#k 表示>
#jLT#k 表示<
#jGE#k 表示≥
#jLE#k 表示≤
例:IF[#1GT10]GOTO100;

N100G00691X10;
例:求1到10之和
O9500;
#1=0
#2=1
N1IF[#2GT10]GOTO2
#1=#1+#2;
#2=#2+1;
GOTO1
N2M301.循环
格式:WHILE[<条件式>]DOm;(m=1,2,3)



ENDm
说明:1.条件满足时,执行DOm到ENDm,则从DOm的程序段
不满足时,执行DOm到ENDm的程序段
2.省略WHILE语句只有DOm…ENDm,则从DOm到ENDm之间形成死循环
3.嵌套
4.EQNE时,空和“0”不同
其他条件下,空和“0”相同
例:求1到10之和
O0001;
#1=0;
#2=1;
WHILE[#2LE10]DO1;
#1=#1+#2;
#2=#2+#1;
END1;
M30; 这是简单的抛物线程序! G99
S800M3
T0101
G0 X30. .Z10.
#1=0
N10 #2=SQRT[2*#1]
G1X[2*#2]Z-#1F0.05
#1=#1+0.1
IF [#1 LE 50] GOTO 10
G0X30
Z100
M5
M30

Ⅵ 魔兽世界 5.4 90级狂怒战士宏指令

其实不建议新手直升90的,因为升级的时间都是在了解这个游戏和你的职业,就算直接到了90也是要花大量时间来熟悉游戏熟悉职业的,这是菜鸟脱菜的时间,逃不掉。
既然已经升了,就先这么玩着吧,熟悉熟悉游戏。
关于打高输出。首先把每个技能的说明看看,记住他们的效果、大概伤害、消耗、冷却时间什么的(几十个技能还有天赋雕文,够你记一会儿了),再去木桩打两下试试。这样你就应该基本了解狂暴战的机制了。
然后看看这个狂暴战指南:http://bbs.ngacn.cc/read.php?tid=6427035。东西很多,耐心看,不懂的地方去游戏里看看技能说明,再不懂问我。
关于宏,其实不用也没问题,实在要用的话那个指南里也有说到,打副本够用了。

Ⅶ 藏剑90pve输出宏

这套有点老了猛虎现在已经没有了,平湖黄龙不推荐宏,有些boss你不能去正面的,然后就是没有移动跳跃的判定,这个断潮应该会吃掉凤鸣吧,轻剑换重剑剑气接近90就行了,啸日一般都有10剑气秘籍吧,你又不能稳稳卡90剑气,有点浪费了,而且这个应该是夕照优先于云飞的,现在一般都是云飞优先于夕照
宏命令就是这个代码
名字随便吧,新建宏一?

Ⅷ 数控车床宏程序怎么写最好带步骤解说

数控车床宏程序是非常灵活且因情况而异的,所以数控车床宏程序编程掌握以下参数即可:

普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。

例如:#1=#2+100;G01X#1F300。

量的表示:计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。例如:#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#1Y#2的执行结果为G00X0。

(8)90宏命令编写扩展阅读:

数控宏程序编程是用变量的方式进行数控编程的方法,数控宏程序分为A类和B类宏程序,其中A类宏程序比较老,编写起来也比较费时费力,B类宏程序类似于C语言的编程,编写起来也很方便。

不论是A类还B类宏程序,它们运行的效果都是一样的。

编写一些大批相似零件的时候,可以用宏程序编写,这样只需要改动几个数据就可以了,没有必要进行大量重复编程。

Ⅸ 魔兽世界宏命令是什么 我是新手ZS刚90级。改怎么用宏我是武器 防战

聊天框左上角按钮,有宏按钮,点出来,可以自己设计宏按钮,是用来快捷的让玩家设计自己想要得连续技能,比如我想按一下,把盾墙和盾牌屏障在同一秒用了,就可以设计宏:
/ues 盾墙
/ues 盾牌屏障
或者很多不公CD的技能,自己用大脑开发。用英文。
谢谢,自己打的,整个最佳吧

Ⅹ 魔兽世界宏命令编写要计算机知识吗

计算机语言有很多种,我虽然不专业,也没系统的学过,在编程上只接触过plc,但我还是用一晚上的时间编写出了魔兽世界自动钓鱼脚本,成功率90%以上。有幸我是个魔兽世界玩家,宏命令这块没有接触过,不过也会举一反三的写些娱乐性的宏,虽然没什么用处,但最起码我是编程里玩魔兽世界最厉害的,也是玩魔兽世界里编程懂一些思路的。

宏命令只是魔兽世界里开源的那部分自定义功能而已,就像word也可以实现简单的编程一样。

魔兽世界里除了源代码这种复杂的程式,玩家经常用的就是宏和脚本,我们平时用的插件就是宏和脚本的结合。

不知道楼主所说的计算机知识是什么,反正想要接触这块,楼主知道保存打开关闭基本就差不多了,不需要知道CPU GPU 位宽频率南北桥之类的知识。

编程最重要的就是逻辑思维能力。还有记单词。

计算机语言有很多种,什么vb c java网络一搜一把,就是个别语句格式单词不一样,大体思路是这样的。

如果你会c,那脚本宏什么的肯定入门超快而且觉得超简单。如果你不会,也可以直接学,因为各大新华书店编程区里都有厚厚一本针对魔兽世界脚本宏的技术书籍,楼主可以去学习一下。

阅读全文

与90宏命令编写相关的资料

热点内容
地下车库加密多少合适 浏览:686
pythonmysql配置 浏览:575
云服务器密码生成器 浏览:985
码头提还柜app怎么操作的 浏览:834
三国志11汉化包在哪个文件夹 浏览:924
java订单系统源码 浏览:485
php开源视频系统 浏览:220
程序员自我隔离 浏览:95
kd与其它指标叠加源码图片 浏览:790
arcgis在云服务器上安装无反应 浏览:951
服务器bmc刷一半怎么办 浏览:369
phppdf打印 浏览:665
向量范数的源码 浏览:79
查找隐藏的文件夹win7 浏览:596
怎么才能玩我的世界正版服务器 浏览:147
邮箱中发件服务器是什么 浏览:219
菜鸟app怎么设置快递不放菜鸟驿站 浏览:795
android文件内容获取 浏览:719
iis如何配置php环境 浏览:597
android的内核源码 浏览:563