在目前设计行业高周转的情况下,为了满足具有开发能力的设计单位和个人对结构设计方案实现参数化的快速调整和选优,PKPM结构软件发布了一套API二次开发工具包。API 1.0提供C#和C 版本,可实现建模模型参数化调整和创建,还可以实现根据构件级和指标级计算结果,关联对应的模型构件进行调整,自动启动PKPM结构软件计算进行优化迭代。除此之外,用户也可以利用API接口,将自己的定制功能与PKPM结构软件集成,打造属于自己的PKPM软件!

一、数据和绘图API V1.0简介

本次发布的二次开发SDK(SofteWare Development Kit)有两个部分,分别是数据API和绘图API,各自用途和支持的语言见下表,并提供接口说明书。

表1 API功能说明表

_

数据API

绘图API

名称

PMDataAPI

PMDrawAPI

用途

编辑PMCAD模型,

图3 数据API架构关系图

02

利用数据API实现模型修改、结果提取和自动计算

本节主要介绍如何利用API编辑模型和启动PKPM结构软件自动计算,通过两者的结合,开发者可以自己实现工程的优化计算迭代。

2.1编辑模型

通过图2中PM建模模型数据组织形式可见,梁、柱、墙等构件是存在于标准层中的,与PMCAD建模一致,因此要获取和修改某层的构件,需先指定要操作的标准层再进行构件级数据的获取和编辑。

例如要获取第1标准层的梁,将截面类型为1的梁改为类型3,以C SDK来实现,示例如下:

Model model;

model.OpenPMModel(jwsPath);//打开指定的PM模型

model.SetCurrentStandFloor(1);//指定要操作的标准层

for(int i=0;i<model.GetBeamCount();i )

{

int beamID=model.GetBeamID(i 1);

if(model.GetBeamSect(beamID)==1)//找出截面类型是1的梁

{

model.SetBeamSect(beamID,3);//将其截面类型改为3

}

}

model.SavePMModel();//保存修改到PM模型

2.2提取计算结果

CResult result;

result.InitialResult(jwsPath); //获取PM模型计算结果

int beamnum=0;

CBeamDesign* beams=result.GetDesignBeams(1,beamnum);//获取第一层所有梁分析结果

for(int i=0;i<beamnum;i )

{

int pmid = beams[i].GetPmid();//获取每根梁的PMID

//获取每根梁的剪压比

floatshearCompressionRatio=beams[i].GetShearCompressionRatio();

//其他构件分析结果…

}

2.3启动PKPM自动计算

将本次发布的SDK包中JWSCYCLE.exe文件放于PKPM结构新版本软件安装目录的PkpmCycle文件夹中,如下图所示。

怎么打开别人的pkpm模型教程(PKPM二次开发可以做什么)(1)

图4 利用JWSCYCLE启动PKPM计算

启动PKPM自动计算只需两步:

第一步,将要运行的工程路径粘贴入“DirectorySet.conf”文本中,或通过程序写入。

第二步,运行JWSCYCLE.exe。

PKPM结构软件会自动打开指定目录下的模型文件,自动执行模型检查和完成SATWE计算。

03

绘图API

绘图API主要提供与PKPM结构软件的菜单集成、命令注册和绘图刷新功能,通过绘图API调用数据API的接口,开发者可以实现个性化的功能定制。值得一提的是,由于API操作的是PMCAD模型,无需通过接口转换,因此可实现图形的高效刷新。

将SDK开发包中绘图API文件夹中的内容覆盖到PKPM结构新版本软件安装目录的Ribbon文件中即可使用,SDK中预置了菜单和命令注册的样例,在此不做赘述。

怎么打开别人的pkpm模型教程(PKPM二次开发可以做什么)(2)

图5 API命令定制菜单

04

总结

本次发布的二次开发SDK中包含数据和绘图两部分,利用API可实现模型数据获取、编辑和展示,也能提取结果数据找到对应模型构件,实现模型和结果的串联,并且可以启动PKPM结构软件自动计算改动的模型。除此之外,还可以与PKPM结构软件进行集成,注册和开发个性化的功能,欢迎具有开发能力的设计者加入。

怎么打开别人的pkpm模型教程(PKPM二次开发可以做什么)(3)

,