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

news2024/11/24 23:10:38

目录

  • 前言
  • 一、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 form

exit

而下面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.coloradmin.cn/o/365507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

达梦8数据守护动态增加实时备库

实时主备环境 类型 业务IP 库名 实例名 PORT_NUM MAL_HOST MAL_INST_DW_PORT MAL_PORT MAL_DW_PORT 主库dm8p 192.168.1.223 DAMENG GRP1_RT_01 5236 10.0.0.223 45101 55101 65101 备库dm8s 192.168.1.224 DAMENG GRP1_RT_02 5236 10.0.0.224 45121…

模拟电路知识点总结(详细版)-- PN结

一、半导体&#xff1a;介于绝缘体和导体之间 二、本征半导体&#xff1a;纯净的半导体 1.晶体结构&#xff1a;正四面体 2.载流子&#xff1a; 本征激发:逃离共价键的束缚&#xff0c;成为自由电子 (本征半导体的本征激发&#xff0c;通常是由温度引起的晶体结构内部的共价键断…

免费基于springboot的OA自动化办公系统,挺漂亮的

大家好&#xff0c;我是锋哥&#xff0c;看到一个不错的springboot的OA自动化办公系统&#xff0c;分享下哈。 项目介绍 这是一个OA办公自动化系统&#xff0c;使用Maven进行项目管理&#xff0c;基于springboot框架开发的项目&#xff0c;mysql底层数据库&#xff0c;前端采…

GEE学习笔记 五十五:GEE编辑器绘制样本点的一个bug(官方在5.1给出反馈已经修复相关bug)

在做地物分类的时候我们会采用GEE在线采集样本方式&#xff0c;但是这个有一个问题需要注意&#xff0c;如果直接使用绘制矩形和点会将点变为 ee.Geometry.Point([xxx], null, false) 这种形式。出现的问题步骤如下&#xff1a; 1、绘制一个点和一个矩形 2、修改geometry为fea…

持续事务管理过程中的事件驱动

比较官方的定义&#xff1a;事件驱动是指在持续事务管理过程中&#xff0c;进行决策的一种策略&#xff0c;即跟随当前时间点上出现的事件&#xff0c;调动可用资源&#xff0c;执行相关任务&#xff0c;使不断出现的问题得以解决&#xff0c;防止事务堆积。在计算机编程、公共…

WPF五种布局

GridGrid为WPF中最常用的布局容器, 作为View中的主要组成部分, 负责框架中整体的页面布局。标签含义ShowGridLines可以设置行业的边距线的显示Grid. RowDefinitions可以创建任意行, 进行固定高度与百分比高度设置Grid. ColumnDefinitions可以创建任意列, 进行固定宽度与百分宽度…

二氧化碳地质封存技术应用前景及模型构建实践方法与讨论

2022年七月七日&#xff0c;工业和信息化部、发展改革委、生态环境部关于印发工业领域碳达峰实施方案的通知落地。全国各省份积极响应&#xff0c;纷纷出台地方指导文件&#xff0c;标志着我国碳减排事业的全面铺开。二氧化碳地质封存技术作为实现我国“双碳”目标的重要一环&a…

量化策略——准备4 python量化因子测算绘图

文章目录因子测算框架1. 预处理股票数据2. 指标测算3. 测算结果整理4. 结果绘图量化因子的测算通常都是模拟交易&#xff0c;计算各种指标&#xff0c;其中&#xff1a;测算需要用到的第三方库&#xff1a;numpy&#xff0c;pandas&#xff0c;talib绘图需要用到的第三方库&…

研报精选230223

目录 【行业230223开源证券】计算机&#xff1a;政策节奏超预期&#xff0c;数据要素市场加速发展【个股230223光大证券_鲁商发展】投资价值分析报告&#xff1a;剥离地产业务、战略转型大健康产业&#xff0c;化妆品“国货之光”待发力【个股230223华安证券_国际医学】综合医疗…

数据库恢复技术

一&#xff0c;事务的基本概念 1.事务 事物是用户定义的一个数据库操作序列&#xff0c;这些操作要么全做&#xff0c;要么全不做&#xff0c;是一个不可分割的工作单位。 事物和程序是两个概念。一般的讲&#xff0c;一个程序中包含多个事物。 事物的开始与结束可以由用户…

瓴羊Quick BI智能报表,轻松搞定复杂“中国式报表”

随着企业的不断成长&#xff0c;内部管理、运营所需的报表往往越做越复杂。不管是对一个职场新人&#xff0c;还是专业的数据分析人员来说&#xff0c;制作复杂的“中国式报表”都是一件让人很痛苦的事。正因如此&#xff0c;越来越多的企业开始使用瓴羊Quick BI智能报表&#…

FPGA纯verilog代码实现H.264/AVC视频解码,提供工程源码和技术支持

目录1、前言2、硬件H.264/AVC视频解码优势3、vivado工程设计架构4、代码架构分析5、vivado仿真6、福利&#xff1a;工程代码的获取1、前言 本设计是一种verilog代码实现的低功耗H.264/AVC解码器(baseline )&#xff0c;硬件ASIC设计&#xff0c;不使用任何GPP/DSP等内核&#…

最新Python异步编程详解

我们都知道对于I/O相关的程序来说&#xff0c;异步编程可以大幅度的提高系统的吞吐量&#xff0c;因为在某个I/O操作的读写过程中&#xff0c;系统可以先去处理其它的操作&#xff08;通常是其它的I/O操作&#xff09;&#xff0c;那么Python中是如何实现异步编程的呢&#xff…

Python每日一练(20230223)

目录 1. 合并区间 2. 单词接龙 3. N皇后 附录&#xff1a;回溯算法 基本思想 一般步骤 1. 合并区间 难度&#xff1a;★★ 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回…

【虚拟仿真】Unity3D中实现鼠标的单击、双击、拖动的不同状态判断

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 这篇文章分享一下虚拟仿真项目中经常碰到鼠标事件控制代码。 …

某直聘tp_token解析

尊重版权&#xff0c;请勿盗版&#xff0c;不放代码。截至2023-02-23更新---------------------------------------检测windows属性总数大于150 改成大于15 > 150检测了document属性大于50检测了navigate属性检测了navigate.plugins 属性值检测moudle nodejs是否存在&#x…

Java 异常处理,超详细整理,适合新手入门

目录 前言 抛出异常 捕获异常 处理异常 finally块 总结 前言 当Java程序中出现错误或异常时&#xff0c;通常会抛出一个异常。Java的异常处理机制使得我们可以在程序运行过程中捕获这些异常并采取相应的措施&#xff0c;以便程序能够正常运行或者优雅地停止。 抛出异常 在…

德馨食品再战IPO,“卖水人“还有新故事吗?

新茶饮供应链企业迎来上市潮。2月13日&#xff0c;浙江德馨食品科技股份有限公司&#xff08;下称“德馨食品”&#xff09;更新招股书&#xff0c;再次冲刺深交所。此前&#xff0c;原料果汁速冻果块制造商田野创新股份有限公司&#xff08;下称“田野股份”&#xff0c;83202…

华为OD机试真题 用 C++ 实现 - 字符串加密 | 多看题,提高通过率

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

16行代码采集原神官网角色全图+全语音

嗨害大家好鸭&#xff01;我是小熊猫~ 本来是不玩原神的&#xff0c; 但是实在是经不住诱惑鸭~ 毕竟谁能拒绝可以爬树、炸鱼、壶里造房子、抓小动物、躲猫猫的对战游戏捏~ 准备工具 源码资料电子书:点击此处跳转文末名片获取 准备模块 import requests import re import ex…