当前位置: 首页 > news >正文

PDMS二次开发(一)——PML类型程序类型与概念

目录

  • 前言
  • 一、PML类型与概念
  • 基础知识
    • 变量
    • 函数
      • 小例子
    • 注释
    • PML表达式
    • 条件判断语句
    • 循环
    • skip和break
  • 窗口程序
    • 在PDMS菜单栏中添加程序
  • 窗口自动定位
  • PML常见控件

前言

PDMS二次开发需要.net 有自带的PML语言和C#
.net一般通常泛指的是C#语言
模型数据借助.NET的接口可以转换成数据库中的关系型数据,将固化在PDMS软件中的工程数据,转移到更广阔的应用领域。

.NET二次开发的两种方式。一种是使用.NET插件;另一种是使用PML.NET。两种方式的机制都可以使用程序被动态加载到使用的模块中。我采用的是纯.NET开发的方式,熟悉PML的人可能更喜欢PML.NET的方式。

编辑器的话 PML 可以用

1677055795925.png

1677055819989.png

一、PML类型与概念

PML是面向对象的一种编程语言,支持用户自定义对象类型,是一种简单易学,与PDMS无缝链接的一种语言

1677055877303.png
常用的是pmllib
要做的项目简介:

1677055931343.png

1677066204119.png

image.png

基础知识

变量

! 用来声明变量 一般不在命令行窗口来写 要自己写一个脚本用来执行
!number = 9 q var !number
答案: <REAL> 9
!number = object real()
q val !number

PML里面的变量是不区分大小写的
unset指的是空类型 相当于null
1677066750034.png

1677066846892.png
real中对比java的话 里面包括Double和int float 都属于real类型

Array数组类型里面 可以放String real 等不局限于一种类型

1677066871853.png

1677067559864.png

1677067888433.png

1677067992842.png
!!ce指的是当前元素

1677068057271.png

1677068104242.png

函数

1677068791605.png

函数的定义 !!Area函数 里面是参数 然后最右面是返回值 感觉和go语言的差不多

1677068917347.png

需要注意的是函数的名称要和定义的这个函数的文件名称要一致
1677069009778.png

输入的是8*5 然后再进行查询之后得出的结果
1677069042940.png

目前的演示都是再CommandWindow窗口程序里看到的

小例子

1677069276588.png
先定义两个小零件
然后编写函数

1677069427103.png
就是根据程序重新命名了一下
然后执行
pml rehash all
!!NameNozzle()
就可以了
结果:

1677069508868.png

注释

1677069834515.png
--不可以放在代码的同行后面
1677069883001.png
打印就是Log日志 在控制台输出的那种

PML表达式

1677116714477.png
和并符&:就是两个字符拼接在一起所用的
如果都是字符串的话 也可以用+

条件判断语句

1677116440427.png

循环

1677116470833.png

skip和break

就是类似continue 和break

1677116491728.png

类似goto

1677116550653.png

1677116610993.png

窗口程序

1677117807654.png
下面是最终版本的get函数

1677129394356.png
这个是声明了一个窗体程序

setup formexit

而下面define method .PipeBop() 那个是构造方法
在下面是普通的方法
method里面常与object对象这种相结合
text .txtBop 'BOP' at x 1.1 ymax width 20 is real
.txtBop 是声明文本框的名称名
'BOP’表示的是在屏幕上显示的名称
这个是以左上角为原点坐标
出来的效果就是

1677118398503.png
然后再加入一些方法 点击出来的按钮
其中flnn 这个是指的是零件的名称
当form里面的改变 或者增加方法什么的才需要刷新 否则就单纯更改方法里面的代码就不需要更新
这里面定义的就是PML中的Object类 按F1快捷键
1677120384806.png
Gadget是控件

1677120638819.png
就是让窗口的控件变灰 直接失灵 Active= false
neq是非的意思

1677121500861.png
ID@是让你点击界面的确认 element

1677128532271.png
循环点击 设置set函数
esc退出

Indices遍历集合

1677129094801.png

dbref : 指的是pdms库里面的元素类型

1677129558606.png

最终版:

1677129691599.png

在PDMS菜单栏中添加程序

1677130022246.png
右键出现的Customize然后出现工具
在中间的部分右键新建 然后最右边的栏中进行编辑 注意是Mcro形式 因为我们这个本质上是宏命令

1677130138089.png
最后的时候一定要记得 把按钮拖进去 要不还是失效的

1677130207941.png
如果txt文件中执行的话(这里面txt文件中仅仅有一个查询的一条语句)
1677130291705.png
或者也可以通过按钮工具的形式出现

1677130379647.png

1677130495763.png

窗口自动定位

1677131303176.png

1677131536832.png

1677131575729.png

1677131618439.png

也可以组合

1677131984161.png

1677132199262.png

1677132355641.png
构造方法只运行一次就够了 初始化完成 是每次重新打开都会

1677132464322.png

1677132539552.png
就是常见的OK键和cancel键

1677132617438.png

PML常见控件

1677131679000.png
tooltip 'Slect pipe’这个是窗口停靠的提示信息
1677131723121.png

1677133403738.png

1677133445170.png

http://www.lryc.cn/news/17776.html

相关文章:

  • 一文揭晓:手机号码归属地api的作用是什么?
  • 电容的结构分类介质封装及应用场景总结
  • 数据结构初阶——时间复杂度与空间复杂度
  • 深度学习之“制作自定义数据”--torch.utils.data.DataLoader重写构造方法。
  • #G. 求约数个数之六
  • 如何为Java文件代码签名及添加时间戳?
  • Xamarin.Forsm for Android 显示 PDF
  • RK3399平台开发系列讲解(LED子系统篇)LED子系统详解
  • LeetCode 432. 全 O(1) 的数据结构
  • 再析jvm
  • 社招前端二面面试题总结
  • 人人能读懂redux原理剖析
  • uniCloud云开发----7、uniapp通过uni-swiper-dot实现轮播图
  • IM即时通讯构建企业协同生态链
  • Python实现构建gan模型, 输入一个矩阵和两个参数值,输出一个矩阵
  • 开学准备哪些电容笔?ipad触控笔推荐平价
  • 放下和拿起 解放自己
  • 100%BIM学员的疑惑:不会CAD可以学Revit吗?
  • 经常会采坑的javascript原型应试题
  • 完全背包—动态规划
  • 消息队列MQ介绍
  • C语言进阶(八)—— 链表
  • 手工测试用例就是自动化测试脚本——使用ruby 1.9新特性进行自动化脚本的编写
  • RockerMQ简介和单节点部署
  • SFP光纤笼子 别称 作用 性能要点 工程要素
  • [HarekazeCTF2019]Easy Notes
  • Java学习-IO流-字符流-FileReader
  • python攻陷米哈游《元神》数据?详情请看文章。。
  • 【unity细节】基于unity子对象(如相机)为什么无法进行z轴的拖拽移动和z轴自动归位的问题
  • 如何维护固态继电器?