pml二次开发基础语法

合集下载

一个PDMS中的PML二次开发程序-结构平台委托的自动生成工具

一个PDMS中的PML二次开发程序-结构平台委托的自动生成工具
… … ~ … “ … 一 —
i 痔 母 嚣 稚薅 辘 审 蝴葡 磁 堂 静 菱 鞲 糍 普扭 舞 煮 稚
i j
一 { …… … ~ …


根据管径判断开洞太小
… … … … …

撮摇智控判断开洞替载

霉 熟 礁 。
% 舄| 祷毒≥ 蔫霉罄
豳描

{ ——————————————— l _ … 一~ 一~ … … 一… 一 龟 找到范围内平台荷载点
’ _

¥ - H _
— —
q I q Ⅷ _ 目 口
— — — —

{ j ;










…一…~ 一 …’ …
蔷 噶 蔷
情况, 校审及后期会签 的工 作量 大 , 且修改不便。 针对 以上 问题 , 我们考虑开发一 个应用程序从P DMS 工厂三维





曼 … … 曼 … …… 一 … …~… 鐾 一
褒 蓥掀壤


Hale Waihona Puke 模型 中直接生成给结构专业 的平 台委 托资料 , 通过进一 步的开发 , 将 来也可生成其他专、 I J , 委托资料 。
中 图 分类 号 : TP 3 1 1 1 文献标识 ̄ B - : A 文章 编 号 : 1 0 0 7 — 9 4 l 6 ( 2 0 l 7 } 0 9 — 0 1 7 4 一 ( ) 2
1引言
( 1 ) 如何判断管道是 否穿洞 : 解决 方 ’ 案: 利用P M1 找 所 仃平台 范 闻内直管段( TUB I ) , 然后判断直管段 , 如果直管段 - j . 分别 化工 及炼 油设 计中 , 管道设计专业 的工作 主要 包括 两部分 , 一 位于 平台上下两侧 , 则判断其为穿洞。 ( 2 ) 如何判断管道”洲 人小: 解 是搭建工厂三维模型 , 生成施工 图纸和材料报表 , 二是 向各专业提 决方案: 首先判断管道外径( a b o r ) , 然J f 『 彳 判断管道保温厚馊 , 史 足否伴 交委托资料。 在委托资料 中, 工作量最大的是 向结构专业提交 的平 由于不同工艺包 中埘伴热及保 温的描述不问 , 所 以增加 r单独 台委托资料 。 目前 , 同内绝大多数设计院管道设计专业 向结构专业 热 , 判断保温的 白选命令。 ( 3 ) 如何判断荷载点 他置 : 解决方 案: 搜_ j . 所有 的委托还停 留在纯 一 : 维规划阶段 , 不仅要在模型 中对平台上存在 的 在平 台上方2 米范围 内的 的承重 支架( 按照逻辑支架的类 进行设 大量 管道穿洞及简载点进行测量 , 还要在C A D中进行大量重复 的绘 , 并 记录其坐标 , _ 判断为荷载点 , 增 加 门定 义_ 茼 载点功能 , 对未能 编辑工作 , 以 ・ 个冷 换构架为例 , 二维绘 图往往需要一 周甚至更 置) 罐 饔 蔓 判断的荷 载点 , 可手动 毒 蓦 龉 一 击模型添加。 ( 4 ) 如何 门动 ’ 台 f ‘ 洞: 解 长时间 , 而且 由于 人 r 输入量较大 , 常存在漏掉荷载点或者开洞 的

利用PML语言开发PDMS建模

利用PML语言开发PDMS建模

利用PML语言开发PDMS建模作者:张博陈冬霞来源:《数字技术与应用》2014年第06期摘要:PDMS三维配管设计中,PDMS 前期的建模和后期的出图占据了很大的比重。

前期建立的PDMS数据库资源丰富,如何开发这个宝藏,是我们面临的一个重要课题。

本文简要介绍如何利用PML 语言,编程解决PDMS建模中的一些问题,重点阐述了如何编程实现一步设定一批管道绝热信息,在附录中列出程序并做了相应的程序说明。

通过开发利用PML语言编程,以期降低工作强度,提高工作效率。

关键词:PDMS PML语言编程管道绝热中图分类号:TQ050.2 文献标识码:A 文章编号:1007-9416(2014)06-0189-011 概述PDMS是英国AVEVA公司开发的三维工厂设计系统,是工厂设计管理系统(Plant Design Management System)的简称,目前在国内已被广泛应用于石化、冶炼、制药、电力等行业。

较之传统的CAD等平面设计软件,PDMS以数据库作支撑,通过PML(Programmable Macro Language)可编程宏语言后台运行,借助三维实体模型表观,直观而精准的体现了空间内设备、管道、结构等的相互位置关系,且支持提取平立面图纸和表格,经简单整理即可生成项目的施工文件,达到无差错,最优化设计,使现有的设计思想、方法及过程都发生一系列变革,为工程设计人员提供了全新的设计方法和手段。

本文通过PML编程语言的二次开发,找到了一种自动设置管道解热等级的方法,从而避免了手动设置,且可以批处理,从而大大提高了工作效率。

2 PML语言编程在PDMS建模中的应用PDMS常规上管道模型,一般是按照PID将各管件,法兰,阀门等依次合理的布置在某一空间里(当然包括管线命名,如XSC1303A-80-S9A-H3-GC2),最后再设置管道绝热。

管道的绝热设置一般是逐个手动设置绝热等级(如H3),因为只有设置好后,利用相应模板抽出的表格才有保温厚度。

PowerMILL二次开发 初级教程

PowerMILL二次开发 初级教程

楼主跳转到»倒序看帖打印字体大小: tT 发表于 2008-12-6 13:48 | 只看该作者[分享] PowerMILL二次开发初级教程PowerMILL, 教程, 初级, 开发我们在开发外挂的时候,重点只有以下两步,1.如何发送命令2.如何接受信息其他的只不过是围绕重点处理程序运行的流程,即所谓的算法1.发送命令方法1.利用现有的控件PowerSolutionOLE.ocx ,在入门里已经讲了,不多叙述了方法2.利用GetObject,取得实例的方法,以后再讲2.接受信息我认为,接受信息应该包括:a. 直接接受命令返回信息b. 接受窗口信息同上,实现方法也有两种,以利用控件接受信息为例,简单说明a. 直接接受命令返回信息MsgBox PowerMILL31.ExecuteEx(&quotRINT VALUE PROJECTPATH" )这句命令是利用消息框,弹出我们当前用PowerMiLL打开的档案的路径===================================================================(PowerMILL31为控件的名称,如下图所示)下载 (0 Bytes)2010-1-18 08:26===================================================================b. 接受窗口信息MsgBox PowerMILL31.ExecuteEx(&quotRINT FORMVALUE FEEDRATE.FEEDCUTTING" )这句命令是利用消息框,弹出我们当前用PowerMiLL打开的档案的激活刀路的切削进给率注意:如果你要看到窗口的信息,在命令行输入:MENUBARHELP DYNAMIC FORM 下载 (0 Bytes)2010-1-18 08:26看到我们的FEEDRATE.FEEDCUTTING 了没有下载 (0 Bytes)2010-1-18 08:26今天就到这里了,有问题说,有时间再答复!中国设计社区《化工三废处理工(初级、中级)》PDF向前辈们请教初级问题(什么时候用到有托顶针和扁顶针)收藏分享卫民发短消息加为好友卫民当前离线UID12989 帖子389 主题0 精华0 积分0 设计宝0 个流量99 K 阅读权限5 在线时间0 小时注册时间2008-11-9 最后登录2008-11-9一级红栌帖子389 积分0 阅读权限5 注册时间2008-11-9 沙发发表于 2008-12-6 15:03 | 只看该作者受教了,谢谢分享,TOPhh749 发短消息加为好友hh749 当前离线UID12846 帖子485 主题0 精华0 积分36 设计宝36 个流量99 K 阅读权限5 在线时间0 小时注册时间2008-11-16 最后登录2008-11-16一级红栌帖子485 积分36 阅读权限5 注册时间2008-11-16 藤椅发表于 2008-12-7 14:19 | 只看该作者PM的意思是控件名PM.Connect 这个是VB跟PM连机PM.Execute 这个是向PM发送命令PM.ExecuteEx 这个是获取发送命令返回的结果。

基于PML语言的PDMS三维建筑模型设计

基于PML语言的PDMS三维建筑模型设计

基于PML语言的PDMS三维建筑模型设计王楠;王黎;王云极【摘要】以规则建筑单体为例,探讨了在火力发电厂三维布置设计中运用可编程宏语言(PML)快速建立建筑模型的方法,通过采用三维工厂设计管理系统(PDMS)界面操作和PML语言2种方式建立输煤综合楼建筑模型,并进行建模效率对比,证明该方法在工程运用过程中与传统界面操作方式相比效率更高、规范性更好、人为误差更少.【期刊名称】《吉林电力》【年(卷),期】2016(044)006【总页数】3页(P43-45)【关键词】可编程宏语言(PML);三维工厂设计管理系统(PDMS);建筑模型【作者】王楠;王黎;王云极【作者单位】中国电力工程顾问集团东北电力设计院有限公司,长春130021;中国电力工程顾问集团东北电力设计院有限公司,长春130021;中国电力工程顾问集团东北电力设计院有限公司,长春130021【正文语种】中文【中图分类】TP391.72;TU271随着数字化设计在火力发电项目中的普及和深化应用,参与设计的各个专业都根据自身特点开展了服务于全专业协同的数字化设计研究工作,土建专业在数字化平台上的布置设计工作主要是建筑模型的建立,为汽机、锅炉、电气、结构、暖通、给排水、照明等其他专业提供房间布置,工作范围遍及全厂,提高建筑专业建模效率将对于促进数字化协同设计高效发展产生重要意义。

三维工厂设计管理系统(PDMS)是应用最为广泛的工厂三维设计软件之一,软件核心为7大类结构化数据库,建筑专业模型数据主要存储于其中的参照数据库,包含几何数据、材料属性、门窗信息等。

软件提供的可编程宏语言(PML)[1],具有强大的二次开发功能,包含丰富的内置函数、方法及对象[2],操作便捷,能够与PDMS无缝连接[3],几乎所有的建模工作都可以通过命令和函数的组合来实现[4]。

基于此,探索高效、规范化建立规则三维建筑模型的程序化方法,并通过实际应用验证其可行性。

规范化的建筑模型设计是基于数据库开展协同设计、三维绘图、材料统计的基础,同时也是与其他各专业开展协同配合的基础。

pml编程

pml编程

CADCENTRE
s
Variables变量
CADCENTRE
s
s s s
Named variables变量名 – !variablename or !!variablename – 单个 ! 是local variable(局部变量) – 两个 !! 是 global variable(全程变量) 变量名可以多达 16 个字符,变量名可以包含 alpha字符和数字 变量名不能用数字开头 变量名不能用.开头
用 PML与Cadcentre产品的信息传递
所有命令都需以字符串的形式传给命令解释器. 提取一个PML 变量值,并赋给一个字符串 -- 在变量前加 $ 例如: !CompType = ‘ELBO’ !dist = 5600 NEW $!CompType DIST $!dist
CADCENTRE
s
s
To run a macro with parameters: $M/MYFILE FRED 300 400 600
More on macros
Macros 可以有多达 9 个由空格分隔的参数. $M/FRED HARRY IS DEAD 55 66 77 88 99 00 文本字符串可以以单个参数输入 $M/FRED $<HARRY IS DEAD$> 55 66 77 88 99 00
PML Programmable Macro Language PML 可编程宏语言
s
CADCENTRE
s
s s
Macros是包含PDMS 命令序列的ASCII文件 Programmable macros (可编程宏)是包含程序语 句如IF statements(IF语句) 和 Do loops(DO 循 环)的宏 Macros 在 PDMS 中通过 $m /FILENAME来执行 在 macro line中任何额外位当做为parameters(参 数) $M/BUILDBOX 100 200 300 意味着宏文件名后的额 外的3个值被当做为参数1 2 和 3 ,这可在 macro中 用来设置PDMS 属性或作为计算

PML快速入门

PML快速入门

REAL 数值变量
变量的声明(可省略) !r=real() 变量的查询: q var !r 变量的赋值: !r= 10 变量的运算: + - * / () 等

例: !r1= 2 !r2= 3 !sum=!r1 + !r2 注:直接赋值时加空格 Q var !sum 查询结果为: <REAL>5STຫໍສະໝຸດ ING 字符串变量


变量的声明(可省略) !t=string() 变量的查询: q var !t 变量的赋值: !t= ‘abc’ 变量的运算: 1.连接运算:+ 或 & 2.字符串函数或方法
例: !t1=‘abc’ !t2=‘ABC’ !T=!t1 + ‘/’ + !t2 注:运算符前后有空格 Q var !T 查询结果: <STRING>’abc/ABC’
变量的相互转换
Real至String 如: !num= 100 !string=string(!num)

String至Real 如: !string= ‘100’ !num=real(!string)

或!string=!num.string()
或!num=!string.real()
Q var !string
常用符号(2)



!A=值 !A=object x() !A.b !A.c() d(!A) !!fun(!A) !a.delete()
A赋值 声明A为对象x A的成员b A执行c方法 对A执行d方法 fun函数带参数A运算 删除变量a
宏文件举例
1. 2.
在D盘创建记事本macro.txt 在记事本中写入:

一个PDMS中的PML二次开发程序—结构平台委托的自动生成工具

一个PDMS中的PML二次开发程序—结构平台委托的自动生成工具

一个PDMS中的PML二次开发程序—结构平台委托的自动生成工具作者:李书剑来源:《数字技术与应用》2017年第09期摘要:本文介绍了一个化工设计中用于结构平台委托的程序的开发思路与应用。

关键词:PDMS;PML;二次开发;结构平台委托中图分类号:TP311.1 文献标识码:A 文章编号:1007-9416(2017)09-0174-021 引言化工及炼油设计中,管道设计专业的工作主要包括两部分,一是搭建工厂三维模型,生成施工图纸和材料报表,二是向各专业提交委托资料。

在委托资料中,工作量最大的是向结构专业提交的平台委托资料。

目前,国内绝大多数设计院管道设计专业向结构专业的委托还停留在纯二维规划阶段,不仅要在模型中对平台上存在的大量管道穿洞及荷载点进行测量,还要在CAD中进行大量重复的绘图编辑工作,以一个冷换构架为例,二维绘图往往需要一周甚至更长时间,而且由于人工输入量较大,常存在漏掉荷载点或者开洞的情况,校审及后期会签的工作量大,且修改不便。

针对以上问题,我们考虑开发一个应用程序从PDMS工厂三维模型中直接生成给结构专业的平台委托资料,通过进一步的开发,将来也可生成其他专业委托资料。

2 程序构思(1)程序原理分析。

平台委托自动生成的内容包括:判断荷载点的位置及大小,开洞的尺寸及定位,后期的自动标注和分图等,具体实现路径如表1。

(2)程序应用范围。

本程序适用于包括PDMS11.5, PDMS12.0,E3D在内的主要版本PDMS客户端。

(3)主要设计理念。

设计时的主要理念与难点如下:(1)如何判断管道是否穿洞:解决方案:利用PML找出所有平台范围内直管段(TUBI),然后判断直管段头尾,如果直管段头尾分别位于平台上下两侧,则判断其为穿洞。

(2)如何判断管道开洞大小:解决方案:首先判断管道外径(abor),然后判断管道保温厚度及是否伴热,由于不同工艺包中对伴热及保温的描述不同,所以增加了单独判断保温的自选命令。

PDMS二次开发之PML编程基础

PDMS二次开发之PML编程基础
– 方法并不改变对象的类型和对象中的值
T 参考手册Cadcentre Software Customisation Reference Manual
11
11
方法-字符串对象(String Object)
T 字符串长度 T 类型转换 T 大小写转换 T 两端截取 T 中间截取 T 分隔符截取 T 替换 T 匹配 T 分割(返回数组) T 修剪
T 系统定义(System-defined)的对象类型
– 指在PDMS中的变量类型,如Positon,Reference
T 用户自定义(User-defined)的对象类型
6
6
生成、查询、删除变量
T 使用命令行或者文本文件测试 T 通过赋值声明变量类型
!MyString = 'Hello World' Q var !MyString 显示<STRING> 'Hello World'
T 变量基本概念
– 变量用于存储数值,变量必须有名字,变量的数值可以改变,但变量名 是固定的.
T PML变量
– 在PML2中变量是一个对象(Objects) • 每一个对象(变量)有一个唯一的名字 • 每一个对象都有一套函数与之相关联,这些函数称为方法 (Methods).方法用于处理对象中的数据 • 生成对象时必须指明对象类型(Object type),不同的对象类型对 应不同的方法
T 关键字(Word) 如Type,Purpose
T 位置(Position) 如Position,Hposition
T 方位(Orientation) 如Orientation
T 方向(Direction) 如HDirection
!!ce

pml基础语法简明教程

pml基础语法简明教程

第一部分: 基础知识PML基本概念Programmable Macro Language 可编程宏语言.通常的PML开发包括两部分, 一部分是PML宏,脚本语言; 另一部分是PML2,面向对象的编程语言.1.PML宏(Macro)宏, 就是一系列pml命令的集合.通过$m执行.格式为: $m filename [param1 param2 ….](举例)其中param1为参数, 宏可以参数化.(举例)2.面向对象的PML2PML支持对象(Object),对话框(Form)和菜单(Menu).(举例)一.变量,函数和方法1. 变量的定义及用法在PML2中, 每一个变量都是对象. 变量名以!或者!!开头,例如!weight. !开头的变量为局部变量, !!开头的为全局变量.PML内置了常用的变量类型.(1)Real 实属类型. 提供基本的四则运算操作. 例如!a = 10!b = 10!a = !a + !b$p $!a --输出变量a的值(2)String 字符串类型. 例如!strName = ‘/EQUI-TEST-1’(3)Boolean 用于逻辑表达式. 值只能是true/false(4)Array 数组(5)Position(6)Direction3.变量的创建, 删除, 查看变量可以用赋值来创建. 例如!str = ‘abc’也可以用类型标识来创建.!str= string()!str= ‘abc’删除: !str.delete()查看:通常使用q var!str也可以用$p $!str4.方法(method) 和函数(Function)Method是一个对象的子程序. 只有当对象存在,才可以调用对象的方法. 例如!strNum = ‘123’!num= !strNum.Real()$p $!num以上的代码, 调用的string类型的real()方法, 将字符串转换为数字,并输出.函数的用法与方法类似, 同样有参数和返回值. 但函数是独立存在的,全局的. 在任何地方, 都可以调用.二.程序的结构控制1.循环语句(1)Do循环例如:!sum = 0Do !i From 1 To 100 By 1!sum = !sum + !iEnddo其中!i为循环变量, 初始值为1, 终指为100, 步长为1. 当步长为1是,一般省略.(2)中断Break: 中断并跳出最内层循环(3)跳过Skip. 跳过当此存换. 例如!sum = 0Do !i From 1 To 100 By 1Skip if ( int(!i / 2) eq (!i / 2)) $* 跳过所有的偶数!sum = !sum + !iEnddo2.逻辑控制语句格式为if () then …else…其中括号内的必须是表达式.例如:IF (TYPE OF OWNER EQ ‘BRAN’) THEN$P BRANCH $!!ELSEIF (TYPE EQ ‘BRAN’) THEN$P BRANCH $!!ELSE$P NOT BRANCHENDIF其中elseif /else可选, elseif可多个.3.跳转语句定义标记Label /label1跳转Golabel /gol1不建议使用.三.其他相关语句1.数组字符串长度Length()类型转换Real(),Position(),Boolean()大小写转换LowCase(),UpCase()两端截取After(str2),Before(str2),Substring(index)中间截取Substring(index,nchars)替换Replace(str2,str3)匹配Match(str2)分割(返回数组) Split()修剪Trim()2.字符串元素数量Size()追加元素Append(value)追加数组AppendArray(Array)删除全部元素Clear()倒序Invert()搜索Find(value),FindFirst(value)和并重复项Unique()3.表达式(1)算术运算符+ - * /(2)连接运算符&(3)比较运算符LT GT EQ NEQ(4)逻辑运算符AND OR NOT4.计算函数Sqrt(x)Power(x, e)Int(x)Sin(x)Cos(x)5.注释单行注释用—开头. –之前不可出现空格之外的字符单行注释$*. $*之后的内容为注释. $*之前可出现其他字符段落注释. 用$(和$)将注释内容包括进来.(举例)6.打印$p 打印内容例如$p test line打印多行$p line 1 $Line 2输出内容包括变量$p is $!!其中$为转义字符, 如果要输出$, 则使用$$7.异常处理程序运行中, 可能需要意料之中的可能发生的异常/错误, 例如节点创建失败, 遍历子节点时超过最后一个等等. 这时需要捕捉异常,作出相应的处理.(1)异常捕捉例如Site /TEST_SITEHandle (2, 109) $*$p节点不存在Endhandle其中(2, 109)为错误编号. 也可以使用handle any捕捉任意类型的错误.(2)捕捉多个异常Site /TEST_SITEHandle (2, 109) $*$p节点不存在Elsehandle (2, 108)$p /TEST_SITE节点存在, 但不是SITE类型elsehandle none$p Site /TEST_SITE节点存在endhandle其中handle none表示没有遇到错误的情况.四.用户自定义方法/用自定义函数/自定义对象(1)自定义方法Define method .方法名(参数1 is 类型, 参数2 is 类型…) is 返回值类型其中参数可没有返回值可以没有例如Define method .Sum(!a is real, !b is real) is real!sum = !a + !bReturn !numendmethod(2)自定义函数Define function !!sum(!a is real, !b is real) is real!sum = !a + !bReturn !numendFunction与方法类似. 一个文件里只能定义一个函数,扩展名为pmlfnc, 必须放在指定的文件夹下,并执行pml rehash all(3)自定义对象Define object 对象名endobject五.文件处理(1)读取!file = object FILE(‘d:\abc123.txt')!lines = !file.ReadFile()Qvar!lines(2)写入!arr = array()!arr.append(‘line1’)!arr.append(‘line1’)!file = object FILE('d:\abc.txt')!file.WriteFile('WRITE', !arr) $*将数组!arr写入文件其中’Write’可以换成'OVERWRITE'(覆盖)和'APPEND'(追加)六.对话框及菜单1.系统对话框(1)询问!!alert!confirm = !!alert.confirm('确定要删除吗?')if(!confirm neq 'YES') thenreturnendif(2)警告!!alert.message(‘message’)(3)错误提示!!alert.error(‘error’)2.自定义对话框SETUP FORM !!custumFormTITLE '自定义对话框’Text .text1 ‘点击按钮’Button .okExit这是一个最简单的对话框, 显示一个文本框加上按钮, 但是点击按钮不会有任何反应. (截图)3.对话框调用/初始化Pmlhash allPml reload form !!custumFormShow !!custumForm4.默认构造方法/初始化方法每个form初始化时, 会自动调用与其名字相同的方法. 在刚才的代码中加上Define method .custumForm()!this.text1.tag = ‘初始化完成’Endmethod除此以外, 还可以加上默认的初始化函数在开头加上一行!this.initcall = '!this.init()', 调用构造方法结束,显示之前,会自动调用init()方法5.界面消息的响应界面消息的相应, 例如点击按钮, 选择下拉框等, 用callback关联.SETUP FORM !!custumFormTITLE '自定义对话框’Text .text1 ‘点击按钮’Button .ok ‘OK’ExitDefine method .custumForm()!this.text1.tag = ‘初始化完成’!this.ok.callback = ‘!this.ok()’EndmethodDefine method .ok()!!alert.message(‘OK’)Endmethod此时, 点击按钮, 会弹出对话框. (截图)。

PM宏的语法,常用词及用法

PM宏的语法,常用词及用法

PM宏的语法,常用词及用法PM宏的语法,常用词及用法1,宏语言概述1>宏是PM软件的语言,宏是命令行。

宏有固定的模式,我们学习宏,首先要学语法(也可以说是PM的语言模式),再记单词。

PM语法其实很简单,就是名词+动词或者动词+名词!2>常用单词:a动词:1,FORM-----打开表格(FORM TOOLZHEIGHTS--打开安全高度表格)2,ACTIV ATE----激活元素(ACTIV ATE Toolpath "3"--激活刀路)3,DEACTIV ATE-----使元素不激活(DEACTIV ATE T ool----不激活刀具)4,EDIT------编辑一些参数(EDIT BLOCK TOLERANCE "0.05"---改变毛胚计算)5,DELETE------删除元素(DELETE TOOLPATH "3"--删除刀路)6,RESET------计算(EDIT BLOCK RESET--计算毛胚)7,ACCEPT-----接受表格之类(FEEDRATE ACCEPT--接受刀具参数表格)8,RENAME----该名称(RENAME NCProgram "361712" "6"---改变NC名称)9,DRAW----显示元素(DRAW BLOCK-----显示毛胚)10,UNDRAW----显示元素(UNDRAW BLOCK-----不显示毛胚)b名词:1,BLOCK-----毛胚2,NCProgram ----NC目录3,Toolpath ------刀路4,Tool ------刀具5,Boundary ------边界6,Pattern ------参考线7,Level ----图层8,Model ----模型9,STOCKMODEL ----残留模型10,GROUP ----组合11,RPM ----转速12,FRATE ----进给13,PRATE----下切速度14,RSPEED ----掠过速度15,FINISHING ----精加工16,ROUGHING ----粗加工17,OPERATION ----操作18,ZMAX ----毛胚Z轴最大值19,ZMIN ----毛胚Z轴最小值20,SKIMDIST-----掠过21,PLUNGEDIST ----下切22,GOUGECHECK ------过切检查23,LEADS ------刀路连接24,HARC(H+ARC)------水平圆弧-(V ARC垂直圆弧)---组合词25,PAGE ------页面26,RTOLERANCE(R+TOLERANCE)----粗加工公差(FTOLERANCE精加工公差)---组合词27,RTHICKNESS(R+THICKNESS)----粗加工余量(FTHICKNESS精加工余量) ---组合词28,STEPDOWN ----下刀步距(Z方向)29,STEPOVER ----切削宽度(XY方向)30,SPIRAL ----螺旋31,CLIMB ----顺铣32,ANY ----来回铣33,CONVENTIONAL ----逆铣34,ON ----开启参数35,OFF ----关闭参数3>举例说明常用语法:a, ACTIV ATE Toolpath "2"词义:激活名称为D10-胶位开粗-1的刀路语法:动词(ACTIV ATE)+名词(Toolpath)+名词(动词)(2)点评:这个是PM语法中最常见的模式,大约占的80%多,元素名称要加“”。

PDMS二次开发介绍-基于.Net(C#)平台

PDMS二次开发介绍-基于.Net(C#)平台

基于.Net(c#)方式开发
工程、数据库、元素概念
• 项目(Project),为数据根节点,对应实际工程项目的概念。 一个项目包括多个数据库(MDB)。 • 登陆时,可以选择进入不同模块(Module),设计模块 (Design)还是轴测图、或元件库视图。 • 每个数据库(MDB)下对应如下元素: 树状数据库中每一个节点叫做一个元素,每个元素都有属性保存 他的特征信息,不同类型的元素属性类型也不同 当前元素可以是一个有元素,也可以是元素的结合。
基于.Net(c#)方式开发
• VS中通过引用PDMS提供的DLL,编译出DLL类库,在PDMS中以插件方式 加载,实现PDMS二次开发。PDMS12.0 Sp6需要用.Net2.0版本. • 主要可实现的功能: 程序框架、设置相关,比如:添加工具条按钮及相应命令、 数据库(工程)访问、元素(实体)获取参数、修改、删除等 几何库、图形库等 • 一些事件的响应处理,比如元素创建、修改、或选中时等
支持全路径,及环境变量。 修改插件配置文件,添加我们的插件: 启动后,就会加载插件,并调用入口函数。 D:\AVEVA\Plant\PDMS12.0.SP6\DesignAddins类,并在类构造函数中,设置命令ID,
• 重写虚函数,用以点击命令后,需要做的工作 public virtual void Execute();
原创力文档是网络服务平台方若您的权利被侵害侵权客服qq
PDMS二次开发简介
基于.Net(C#)平台
二次开发方式综述
• AVEVA PDMS提供了三种二次开发的方式:DARs, PML和AVEVA .Net(C#)。 • DARs是Fortran的函数库,也可以用C/C++来开发,依赖的库少,但是只能用于控制台的程序,没 有用户界面(GUI),所以对于提取PDMS数据,然后进行简单处理的小程序比较试用。 • PML:ProgrammableMacroLanguage 可编程宏语言,是一种解释型的脚本语言,其只能在PDMS 软件中被解释执行。PDMS自带的很多程序就是用PML开发的。脚本语言的显著优势就是将常用的命 令封装出来,这样在测试程序新功能时,不需要编译源码,只需要编写脚本,提高软件开发效率;使 用脚本时需要将功能暴露出来,这样会对接口的合理性做更多考虑,使软件架构更清晰等。缺点就是 对于复杂算法,执行效率较低,相对.Net方式功能少。

敏捷批量调度开拓者二次开发手册说明书

敏捷批量调度开拓者二次开发手册说明书

敏捷批量调度开拓者,开启批量调度工具化时代敏捷调度技术平台v7二次开发手册成都塔斯克信息技术有限公司产品网站:1前言 (4)1.1文档目的 (4)1.2读者对象 (4)2开发总述 (5)2.1开发环境 (5)2.2开发模式 (6)2.3编译链接 (7)2.4关于D EMO (8)3应用开发 (9)3.1事件开发模式应用开发 (9)3.1.1功能描述 (9)3.1.2处理流程 (9)3.1.3代码实现 (10)3.1.4编译运行 (16)3.2核心数据访问模式开发 (17)3.2.1功能描述 (17)3.2.2处理流程 (17)3.2.3代码实现 (18)3.2.4编译运行 (21)4开发函数包说明 (23)4.1平台连接与断开 (23)4.1.1概述 (23)4.1.2函数说明 (23)4.2事件类 (24)4.2.1概述 (24)4.2.2相关结构与定义说明 (24)4.2.3函数说明 (26)4.3核心数据-流程基本信息类 (28)4.3.1概述 (28)4.3.2相关结构与定义说明 (28)4.3.3函数说明 (30)4.4核心数据-流程私有变量类 (33)4.4.1概述 (33)4.4.2相关结构与定义说明 (33)4.4.3函数说明 (33)4.5核心数据-流程任务节点类 (36)4.5.1概述 (36)4.5.2相关结构与定义说明 (37)4.5.3函数说明 (38)4.6EBASE基础操作类 (41)4.6.1概述 (41)4.6.2字串处理类 (41)4.6.3时间处理类 (44)1前言1.1文档目的TASKCTL不仅是一个独立技术平台,同时也是一个开放的技术平台,它提供一整套完整的二次开发接口,用户可以在该接口基础上,开发一系列应用程序,以满足项目的一些特殊需求。

本文旨在通过对二次开发相关知识的详细介绍,指导用户进行调度应用二次开发。

1.2读者对象《TASKCTL7.0二次开发》主要适合以下读者对象:技术开发人员2开发总述应用开发主要针对一些特殊任务程序、比如翻牌任务、特色监控程序(短信监控)以及对核心控制等应用的开发。

PML快速入门2

PML快速入门2

注:
点击Qname 将会查询当前元件的名字 点击print按钮,将会打印 Name is aaa
保存至pmllib后刷新pml.index目录,show !!newform调用窗体 修改窗体后需输入 pml reload form !!newform 重载该窗体 如果没有使用调用check()这种方法,仅仅为B2按钮那样执行一排命令,则可以把该文件做成宏 ,直接用$m运行宏,窗体作为一个全局变量会保存在内存中,使用命令show !! 就能显示
PML语言快速入门(二)
PMLLIB介绍 自定义对象OBJECT 自定义函数FUNCTION 自定义窗体FORM
PMLLIB简介

Pmllib作用—PML library
• •
文件夹内存放所有对象、函数、窗体 pml.index 为对象、函数、窗体的目录

Pmllib位置

默认存放在PDMS安装目录下


命令: pml rehash
刷新evar配置下的第一个pmllib文件夹
注:
由于目前项目pmllib默认文件夹为Z盘目录下,若是将自定义对象、函数、窗体放置D 盘,推荐删除pml.index文件,再使用pml rehash命令
PML2分类

OBJECT

对象 函数 窗体
文件后缀为 .pmlobj 文件后缀为 .pmlfnc 文件后缀为 .pmlfrm

FUNCTION


FORM

OBJECT
举例: define object TESTOBJECT member .name is string endobject define method .testobject() !='Hello' Endmethod 注: 该文件名为testobject.pmlobj 解读: 文件名为对象名的小写字母 1. Member 创建成员 name

PowerMILL二次开发教程 V2.0

PowerMILL二次开发教程 V2.0
3 clsPowerMILLOLE类的使用...................................................................................................6 3.1 简介...............................................................................................................................6 3.2 PowerMILL示例 1........................................................................................................7 3.2.1 设计用户界面...................................................................................................7 3.2.2 连接PowerMILL—Connect方法......................................................................8 3.2.3 执行命令—Execte方法....................................................................................9 3.2.4 执行命令并返回信息—ExecuteEx方法........................................................10 3.2.5 获取激活体素的名称—GetActiveEntityName方法 ..................................... 11 3.2.6 返回元素的大小属性—GetEntitySize方法...................................................12 3.2.7 获取PowerMILL资源管理器中存在的元素列表—GetEntitylist方法.........14 3.2.8 刀具路径变换.................................................................................................14 3.2.9 连接刀具路径.................................................................................................15 3.2.10 完整代码.........................................................................................................16 3.2.11 进一步完善.....................................................................................................19 3.3 PowerMILL示例 2......................................................................................................22 3.3.1 设置用户界面.................................................................................................22 3.3.2 将PowerMILL作为”引擎”使用 .....................................................................23 3.3.3 控制PowerMILL的窗体属性—SetWindowState ..........................................23 3.3.4 添加项目.........................................................................................................25 3.3.5 项目处理.........................................................................................................26 3.3.6 进一步完善.....................................................................................................30 3.4 PowerMILL示例 3......................................................................................................31 3.4.1 设置界面.........................................................................................................31 3.4.2 设置初始值.....................................................................................................31 3.4.3 获取元素文件夹.............................................................................................33 3.4.4 添加应用代码.................................................................................................34 3.4.5 进一步完善.....................................................................................................35

二次开发培训教程

二次开发培训教程

二次开发培训教程一、引言二次开发是指在已有软件的基础上进行功能扩展或改进,以满足用户特定需求的一种开发模式。

在实际的软件开发过程中,二次开发可以大大提高软件的定制性和适用性,同时也能为软件的推广和应用提供更多的可能性。

因此,二次开发技能已经成为了软件开发领域中必不可少的一部分。

本教程将介绍二次开发的基本概念、工具、技术和实现方法,帮助读者快速入门并掌握二次开发的相关技能。

二、二次开发的基本概念1. 二次开发的定义二次开发是指在原有软件基础上进行功能扩展或改进的一种软件开发方式,常用于定制化开发或适应特定需求的软件开发过程中。

2. 二次开发的分类根据二次开发的目的和方式,可以将其分类为插件开发、定制化开发和接口开发等几种类型。

其中,插件开发通常是指通过开发插件或扩展,为原有软件增加新的功能或功能模块;定制化开发则是指根据用户特定需求对软件进行定制开发,满足用户个性化需求;而接口开发则是指通过开发接口或SDK,实现与其他系统的集成或对接。

三、二次开发的工具和技术1. 二次开发的常用工具常见的二次开发工具包括IDE(集成开发环境)、文本编辑器、调试工具、版本控制工具等。

在实际开发过程中,可以根据具体的开发需求和技术框架选择合适的开发工具。

2. 二次开发的常用技术常见的二次开发技术包括脚本语言、面向对象编程语言、Web开发技术等。

在实际开发过程中,可以根据具体的开发需求和软件架构选择合适的开发技术。

四、二次开发的实现方法与步骤1. 了解原有软件结构在进行二次开发之前,首先要了解原有软件的结构和功能,包括核心模块、接口和数据交互等,以便确定二次开发的具体目标和范围。

2. 确定二次开发需求根据用户的具体需求和软件的现状,确定二次开发的具体需求和目标,明确二次开发的功能模块和实现方式。

3. 选择合适的开发工具和技术根据二次开发的具体需求和软件的技术框架,选择合适的开发工具和技术,为二次开发提供技术支持和开发环境。

DedeCms二次开发手册

DedeCms二次开发手册

DedeCms系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于DedeCms支持自定义频道模型,用户自定义新频道模型后,还需要按该模型的字段设计一套新的模板,此外,DedeCms也支持使用风格的形式使用模板,默认风格是default,它表示系统默认使用cmspath/templets/default这个文件夹的模板,如果你下载了一套新的模板,你可以不必要删除default原有的文件,把下载的模板文件夹命名你想要的风格名称,如style2等,然后在后台修改了默认的模板风格名称为style2,那系统将使用templets/style2这文件当作默认模板,但是若你手工指定了栏目模板的位置,则后台参数风格的定义无效。

一、概念,设计和使用模板,必须要理解下面几个概念1、板块(封面)模板:指网站主页或比较重要的栏目封面频道使用的模板,一般用“index_识别ID.htm”命名,此外,用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。

2、列表模板:指网站某个栏目的所有文章列表的模板,一般用“list_识别ID.htm”命名。

3、档案模板:表示文档查看页的模板,如文章模板,一般用“article_识别ID.htm”命名。

4、其它模板:一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定义一个模板创建为任意文件。

二、命名,DedeCms模板默认命名规则如下1、模板保存位置:模板目录:cmspath/templets/样式名称(英文,默认为default,其中system为系统底层模板,plus 为插件使用的模板)/具体功能模板文件}2、模板文件命名规范:(1)index_识别ID.htm:表示板块(栏目封面)模板;(2)list_识别ID.htm:表示栏目列表模板;(3)article_识别ID.htm:表示内容查看页(文档模板,包括专题查看页);(4)search.htm:搜索结果列表模板;(5)index.htm:主页模板;注解:[识别ID]可以在“频道模型管理”的地方获得,当然,你也可以在“频道模型管理”的地方确定某个频道的模板命名。

【二次开发】VBA基础知识及一个简单的小例子

【二次开发】VBA基础知识及一个简单的小例子

【二次开发】VBA基础知识及一个简单的小例子关于这个东西到底叫二次开发,还是叫VBA,还是叫宏……随便,你喜欢就好!我们通过Tools→Macros→Macros就可以打开宏的界面(快捷键是alt+F11,与excel,ppt,word一样)↓它里面显示的就是当前选择的“宏库”中可以运行的宏,或者叫脚本,选中对应的脚本点击run就可以运行。

说到宏库,它有两种形式,我们点击上面界面的上的Macro Libraries,然后通过弹出界面中的Library type下拉菜单看到:第一种是Dictionaries,即选择windows下的一个目录,该目录下的宏只能是.catvbs或.catscript格式的独立脚本文件,除了系统的inputbox和msgbox外,无法实现其他人机交互功能↓第二种是vba project。

我们将type选为vba project之后,找到catvba文件选中,即可加载该vba库。

这种vba库文件中可以储存窗体,模块以及类模块,可以实现复杂的用户自定义界面,比如下面这种↓这个界面和VB的编程界面基本是一样的,在实际的开发过程中,小编建议大家在vba库中编写,因为:1.可以按F8一行一行的运行,方便我们查错;2.当输入CATIA能够识别的对象名称或方法时,比如selection.vispeoperties以及point.getcoordinates这种,如果黄色部分自动变成了大写:VisProperties和GetCoordinates,就说明我们写对了;反之很可能是出现了拼写错误。

3.可以做交互界面~因此,如果你拿到的是一个脚本文件,那么有2种方法可以运行它:一种是直接双击;另一种是在macro library里选择该脚本所在的目录。

而通过后者的操作后,我们在tools→customize的commands选项卡中,左边category选择macros,右面就会出来这个命令,我们可以将其拖拽到当前工作台的工具栏中为之创建快捷方式,这样看起来就像是一个系统自带的命令了↓而如果你拿到的是一个.catvba库文件,首先要加载这个库,才能运行其中的命令。

PDMS中常用PML语句

PDMS中常用PML语句

Q abore ------查询元件的公称直径Q aod ------查询元件的外径Q P1 bore ------查询元件P1点的直径,包括设备上的NozzleQ P3 bore ------查询元件P3点的直径,包括设备上的NozzleMark ce ------为当前元素做标记,可以是Pipe,Branch,members, Equipment 等,标记的内容是它本身的名称。

Mark with 'RPE1567' ce ------对当前元素标记’RPE1567’, 引号里面可以是任意内容Q Att ------查询当前元素的参数Q :ims-qcl ------查询Pipe或Branch的等级,当前元素要放在Pipe或Branch层上, Q name ------查询名称,如果知道这个名称,直接敲入命令行就可以找到改元素。

Q lastmodif ------查询最后修改时间Q usermod ------查询最后修改的用户Q usermod :ims-qcl ------查询最后修改:ims-qcl这个参数的用户Q var !!ce.ppos[0].wrt(world) ------查询阀门的设计重心Q var !!ce.ppos[999].wrt(world) ------查询阀门的设计者自己定义的重心Q var !!ce.gcof.wrt(world) ------查询阀门的重心(不考虑负体积如挖孔等)Q var !!ce.ncof.wrt(world) ------查询阀门真正的重心(这是PDMS自带的功能)q var !!ce.poss.wrt(world)Q var !!ce.hstub.attribute(':ep') ------查询branch头部的壁厚,当前元素放在branch上Q var !!ce.lstub.attribute(':ep') ------查询选定元件下面管子的壁厚Q var !!ce.spref.attribute(':ep') 或 Q :ep of spref ------查询所选元件的壁厚上边的:ep可以换成其他的参数,如:de(外径)Q cllength ------查询branch的长度Q var !!ce.spref.attribute(':matiere')[1].name ------查询管道的材料Q spref ------查询元素的制造规格,比如,对于支吊架来说,得出的结果就可能是 spref /MDP/PR09-100Q :mtoarea ------查询安装分区信息Q p1 pos wrt world ------查询元件P1点坐标,例如预埋板Q pos wrt world ------查询元件在世界中的坐标Q poss wrt world ------查询Beam的头部的中心点坐标Q pose wrt world ------查询Beam的尾部的中心点坐标Q :mdsancref ------查询ATTA、STRU以及Anchor plate之间的链接关系Q :prop desc ------查询Beam截面信息Q Dtxr ------查询元件的catalogue详细参数Q Prop code ------查询支吊架的详细类型Q angle/radius ------查询弯头和三通的角度和半径Enhance ce col red ------对当前元素着色,也可以是green,pink , cyan等其他颜色Enhance ce transl >5 ------改透明度Add all within vol ce ------添加当前元素空间内的所有元素Add all STRU within vol ce 300 Col 4 ------添加当前元素周围300空间内的所有 STRU并以yellow显示,其中的STRU、 300和col 4是可变的参数Add ce auto ce ------添加当前元素并居中显示Add href cref ------添加branch头部和尾部相连的管道Add cref ------添加三通相连的管道Add all bran with :ims-ssno eq 'HRA_RPE_03' ------添加具有相同属性的管道,其中的:ims-ssno和HRA_RPE_03是可变参数Add all bran with matchw(:ims-ssno,'HRA_RPE_03') ------添加具有相同属性的管道add all bran with matchwild(:ims-ssno,'HRA_PTR_53') and Hbore gt 50 ------Aid text num 2 (name of owner) at at hpos of owner ------辅助标记,其中的num 2、name of owner和hpos of owner是可变参数,比如改成num 3、TSN、ce/p0等都可以。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一部分: 基础知识PML基本概念Programmable Macro Language 可编程宏语言.通常的PML开发包括两部分, 一部分是PML宏,脚本语言; 另一部分是PML2,面向对象的编程语言.1.PML宏(Macro)宏, 就是一系列pml命令的集合.通过$m执行.格式为: $m filename [param1 param2 ….](举例)其中param1为参数, 宏可以参数化.(举例)2.面向对象的PML2PML支持对象(Object),对话框(Form)和菜单(Menu).(举例)一.变量,函数和方法1. 变量的定义及用法在PML2中, 每一个变量都是对象. 变量名以!或者!!开头,例如!weight. !开头的变量为局部变量, !!开头的为全局变量.PML内置了常用的变量类型.(1)Real 实属类型. 提供基本的四则运算操作. 例如!a = 10!b = 10!a = !a + !b$p $!a --输出变量a的值(2)String 字符串类型. 例如!strName = ‘/EQUI-TEST-1’(3)Boolean 用于逻辑表达式. 值只能是true/false(4)Array 数组(5)Position(6)Direction3.变量的创建, 删除, 查看变量可以用赋值来创建. 例如!str = ‘abc’也可以用类型标识来创建.! str = string()! str = ‘abc’删除: ! str.delete()查看:通常使用q var! str 也可以用$p $!str4.方法(method) 和函数(Function)Method是一个对象的子程序. 只有当对象存在,才可以调用对象的方法. 例如!strNum = ‘123’!num = !strNum.Real()$p $!num以上的代码, 调用的string类型的real()方法, 将字符串转换为数字,并输出.函数的用法与方法类似, 同样有参数和返回值. 但函数是独立存在的,全局的. 在任何地方, 都可以调用.二.程序的结构控制1.循环语句(1)Do循环例如:!sum = 0Do !i From 1 To 100 By 1!sum = !sum + !iEnddo其中!i为循环变量, 初始值为1, 终指为100, 步长为1. 当步长为1是,一般省略.(2)中断Break: 中断并跳出最内层循环(3)跳过Skip. 跳过当此存换. 例如!sum = 0Do !i From 1 To 100 By 1Skip if ( int(!i / 2) eq (!i / 2)) $* 跳过所有的偶数!sum = !sum + !iEnddo2.逻辑控制语句格式为if () then … else …其中括号内的必须是表达式.例如:IF (TYPE OF OWNER EQ ‘BRAN’) THEN$P BRANCH $!!ELSEIF (TYPE EQ ‘BRAN’) THEN$P BRANCH $!!ELSE$P NOT BRANCHENDIF其中elseif /else可选, elseif可多个.3.跳转语句定义标记Label /label1跳转Golabel /gol1不建议使用.三.其他相关语句1.数组字符串长度Length()类型转换Real(),Position(),Boolean()大小写转换LowCase(),UpCase()两端截取After(str2),Before(str2),Substring(index)中间截取Substring(index,nchars)替换Replace(str2,str3)匹配Match(str2)分割(返回数组) Split()修剪Trim()2.字符串元素数量Size()追加元素Append(value)追加数组AppendArray(Array)删除全部元素Clear()倒序Invert()搜索Find(value),FindFirst(value)和并重复项Unique()3.表达式(1)算术运算符+ - * /(2)连接运算符&(3)比较运算符LT GT EQ NEQ(4)逻辑运算符AND OR NOT4.计算函数Sqrt(x)Power(x, e)Int(x)Sin(x)Cos(x)5.注释单行注释用—开头. –之前不可出现空格之外的字符单行注释$*. $*之后的内容为注释. $*之前可出现其他字符段落注释. 用$(和$)将注释内容包括进来.(举例)6.打印$p 打印内容例如$p test line打印多行$p line 1 $Line 2输出内容包括变量$p is $!!其中$为转义字符, 如果要输出$, 则使用$$7.异常处理程序运行中, 可能需要意料之中的可能发生的异常/错误, 例如节点创建失败, 遍历子节点时超过最后一个等等. 这时需要捕捉异常,作出相应的处理.(1)异常捕捉例如Site /TEST_SITEHandle (2, 109) $*$p节点不存在Endhandle其中(2, 109)为错误编号. 也可以使用handle any捕捉任意类型的错误.(2)捕捉多个异常Site /TEST_SITEHandle (2, 109) $*$p节点不存在Elsehandle (2, 108)$p /TEST_SITE节点存在, 但不是SITE类型elsehandle none$p Site /TEST_SITE节点存在endhandle其中handle none表示没有遇到错误的情况.四.用户自定义方法/用自定义函数/自定义对象(1)自定义方法Define method .方法名(参数1 is 类型, 参数2 is 类型…) is 返回值类型其中参数可没有返回值可以没有例如Define method .Sum(!a is real, !b is real) is real!sum = !a + !bReturn !numendmethod(2)自定义函数Define function !!sum(!a is real, !b is real) is real!sum = !a + !bReturn !numendFunction与方法类似. 一个文件里只能定义一个函数,扩展名为pmlfnc, 必须放在指定的文件夹下,并执行pml rehash all(3)自定义对象Define object 对象名endobject五.文件处理(1)读取!file = object FILE(‘d:\abc123.txt')!lines = !file.ReadFile()Q var!lines(2)写入!arr = array()!arr.append(‘line1’)!arr.append(‘line1’)!file = object FILE('d:\abc.txt')!file.WriteFile('WRITE', ! arr) $*将数组!arr写入文件其中’Write’可以换成'OVERWRITE'(覆盖)和'APPEND'(追加)六.对话框及菜单1.系统对话框(1)询问!!alert!confirm = !!alert.confirm('确定要删除吗?')if(!confirm neq 'YES') thenreturnendif(2)警告!!alert.message(‘message’)(3)错误提示!!alert.error(‘error’)2.自定义对话框SETUP FORM !!custumFormTITLE '自定义对话框’Text .text1 ‘点击按钮’Button .okExit这是一个最简单的对话框, 显示一个文本框加上按钮, 但是点击按钮不会有任何反应. (截图)3.对话框调用/初始化Pmlhash allPml reload form !!custumFormShow !!custumForm4.默认构造方法/初始化方法每个form初始化时, 会自动调用与其名字相同的方法. 在刚才的代码中加上Define method .custumForm()!this.text1.tag = ‘初始化完成’Endmethod除此以外, 还可以加上默认的初始化函数在开头加上一行!this.initcall = '!this.init()', 调用构造方法结束,显示之前,会自动调用init()方法5.界面消息的响应界面消息的相应, 例如点击按钮, 选择下拉框等, 用callback关联.SETUP FORM !!custumFormTITLE '自定义对话框’Text .text1 ‘点击按钮’Button .ok ‘OK’ExitDefine method .custumForm()!this.text1.tag = ‘初始化完成’!this.ok.callback = ‘!this.ok()’EndmethodDefine method .ok()!!alert.message(‘OK’)Endmethod此时, 点击按钮, 会弹出对话框. (截图)。

相关文档
最新文档