基于VC界面的输电线路模型建立
- 格式:doc
- 大小:268.00 KB
- 文档页数:26
第26卷 第3期吉林大学学报(信息科学版)Vol.26 No.3 2008年5月Journal of J ilin University(I nf or mati on Science Editi on)M ay2008文章编号:167125896(2008)0320264206基于VC和Si m ulink的电力电子仿真实验平台设计王春民,安海忠,王丰贵(吉林大学仪器科学与电气工程学院,长春130061)摘要:针对单纯用高级语言编程完成仿真平台设计,编程复杂,开发周期长,而仅仅利用M atlab环境构建仿真平台,其界面功能有很大局限性的问题,提出VC程序与Matlab环境一起构成“以电力电子器件和变换器仿真模型为对象的软件实验平台”。
该实验平台通过V isual C++610编程,将软件界面与Si m ulink仿真模型整合在一起,通过Matlab引擎对Si m ulink仿真模型进行控制,对整流、逆变等多种典型的电力电子器件和变换器进行仿真非常方便。
可任意添加新仿真模型扩充仿真内容,也可通过设置或修改参数观察参数变化对仿真结果的影响,具有动态仿真效果,为研究电力电子器件和变换器的工作特性提供了有力支持。
实验平台为电力电子系统的设计与实现提供了新的思路和方法,可有效缩短系统开发周期。
关键词:VC编程;M atlab引擎;电力电子;实验平台中图分类号:TP39119文献标识码:ADesign of Si m ulati on Experi m ental Platfor m for Power Electr onicsBased on VC and Si m ulinkWANG Chun2m in,AN Hai2zhong,WANG Feng2gui(College of I nstrument Science and Electrical Engineering,J ilin University,Changchun130061,China)Abstract:To design a si m ulati on p latf or m only by p r ogra mm ing using advanced p r ogra m languages is comp licat2 ed and ti m e consu m ing,while t o build a si m ulati on p latfor m byMatlab envir on ment will lead t o the li m itati on of interface functi ons.W e use the t w o instruments t o conf or m the s oft w are interface by p r ogra mm ing V isual C++ 610with Si m ulink si m ulati on model t o for m a s oft w are experi m ental p latfor m of si m ulati on models f or power elec2 tr onic components and converters.The p latf or m was featured in the comf ortable usage,si m p le operati on,easy adjust m ent,good ex pansi on and visi on ability.The users could add any ne w si m ulati on models t o expand si m ula2 ti on contents and observe the effects on si m ulati on results by changing settings and para meters.This verified the p latfor m was dyna m ic.The research would p r ovide innovative ideas and ways in designing and i m p le menting the syste m of power electr onic and shorten the devel oped peri od as well.Key words:V isual C p r ogra mm ing;Matlab engine;power electr onic;experi m ental p latf or m引 言电力电子技术已成为一门新兴的高新技术学科,介于电气工程的三大领域:电力、电子和控制技术之间的边缘学科,是研究电力传送、变换和控制的科学[1]。
基于LCC计算模型的高压输电线路设计分析摘要:电力系统运行的经济性、可靠性与高压输电线路设计正确性以及线路建设技术指标有着密切关系。
所以,高压输电线路在设计过程中应严格按照相关设计标准、技术标准进行设计。
并结合线路所经地特点、实际工作情况,适当选用新结构、新材料来完成设计工作。
关键词:LCC;高压输电线路;设计分析根据高压输电线路工程建设的特点,高压输电线路工程设计一般采用LCC计算算法,LCC计算方法包括参数法、类比法、分析估算法、工程估算法等。
其数学模型可表示为:C=C1+ C2+ C3+…Cn其中,C为高压输电线路寿命周期费用,后面各项为不同的单元费用,各单元费用还可继续分成子单元,形成一个完整的费用结构分析图。
1.输电线路LCC计算模型对于实际高压输电线路工程,LCC成本投资成本、运行维护成本、失效成本和报废成本组成,同时考虑资金的时间价值,将其换算为等年值表示。
输电线路LCC成本一般可划分为路径相关成本、导地线成本、杆塔成本、基础成本、绝缘子成本、金具成本、防雷及接地成本及其它成本八个要素单元。
各要素单元和项目整体LCC成本如式1-1和式1-2:各要素单元LCC成本计算:LCC=IC+OC+FC+DC (1-1)线路整体LCC成本计算:LCC=∑IC+∑OC+∑FC+∑DC(1-2)式1-1中各成本构成要素如下:投资成本IC=设备购置费+安装调试费+其它费用购置费为设备实际采购价格、运输费及招标采购过程中所发生的相关费用之和。
安装调试费为设备在安装和调试过程中所发生的安装、调试及装置性材料等相关费用。
其它费用为是指完成工程建设项目所需的不属于购置费、安装调试费用的其它费用。
运行维护成本OC指输电线路运行期间所花费的一切费用的总和,包括:能耗费、人工费、环境费用、维护保养费以及其他费用。
失效成本FC=计算周期(年)×年平均故障率×单次故障费用年平均故障率是指计算范围内各类设备年度发生故障的综合概率,可参照状态评价的相关研究成果求取故障率。
在国务院颁布的《电力安全事故应急处置和调查处理条例》和中国南方电网有限责任公司颁布的《中国南方电网有限责任公司电力事故事件调查规程》中,可明显看出,对于电网安全问题的极度重视程度,条例中,针对因失压厂站数量、减供负荷比例的不稳定所造成电网安全事故的发生而提出了明确规定,加大了电网安全事故系统设计的难度,因此本文针对收集用户数据,整合数据,查找数据进行构建,设计最完整的电网安全事故模拟结构。
1 电气元件系统的设计1.1 构建电网模型首先要知道三相电网的构成是对称的,在对电网模型进行建模时,只需挑选一相等值电路并对此进行构建即可[1]。
通过已知的电学基础知识,运用T 行等值电路代表电网,如图1所示。
图1 电网等值电路图通过上图表示的等值电路图,可计算出电网的电阻表示为:()*22310T S n n R P V S =∆× (1)电网的电抗表示:()()23/100/10T x N N X V V S =××(2)0T N =∆× (3)电网的电纳表示:()()230/100/10T N N B I S V −=××(4)如上图所示,电网的电阻、电抗、电导和电纳分别用T R 、T X 、T G 、T B 来表示;铜耗用S P ∆表示;三相额定容量用NS 表示;用N V 表示额定电压;短路电压的百分比为%x V ;铁耗用0P ∆表示;用%x V 代表短路电压百分比。
1.2 构建输电线路模型首先在构建输电线路模型前,需要设立四个平均分配的参数,如:电阻、电感、电导和电容。
以下公式可计算出长度为单位时电阻的数据为:0l r Sρ=(5)以长度为单位时的电感为: 00.144510.0157mD x gr=+ (6)以长度为单位的电导为: 30210g P g U−∆=×(7)以长度为单位的电容为:607.58lg 10m D b r −=×(8)综上所述,电阻、电感、电导、和电容分别用字母0r 、0x 、0g 、0b 表示;输电线路的电阻率为;导线长度由表示;导线的截流部分界面是S;几何均距用表示;输电线路的半径为r ;用 代表三相输电线路损耗功率;输电线路的电压用U 表示[2]。
题目:2023数学建模C题解题思路一、明确问题1.1 问题背景分析本题的背景是研究电网中的输电线路问题,即如何合理规划输电线路,使得电网的输电损耗最小化,从而保证电能的高效输送。
1.2 问题提出在实际的电网规划中,需要考虑多个因素,包括输电线路的长度、电阻、负荷等情况,本题要求我们利用数学建模的方法,分析并得出最佳的输电线路规划方案。
二、问题分析2.1 输电线路规划模型建立我们可以建立如下的输电线路规划模型:设电网中有n个节点,其中第i个节点的负荷为Pi,节点i到节点j之间的距离为Lij,电阻为Rij。
为了最小化输电损耗,我们需要在这n个节点之间规划出合理的输电线路。
2.2 优化目标确定我们将电能输送损耗定义为Pij×Lij×Rij,其中Pij为节点i到节点j的电流。
我们的优化目标即为最小化ΣPij×Lij×Rij。
三、模型建立3.1 输电线路路径选择我们可以利用最短路径算法,如Dijkstra算法或Floyd-Warshall算法,来选择节点之间的最佳输电线路路径。
这样,我们就可以确定每条输电线路的最短路径。
3.2 输电线路负荷分配为了最小化输电损耗,我们需要将电能尽量均匀地分配到每个输电线路上。
这就需要我们对电网中的负荷进行合理分配,以确保每条输电线路的负荷接近均衡。
3.3 输电线路电阻计算根据每条输电线路的长度和电阻系数,我们可以计算出每条输电线路的电阻。
这将有助于我们评估每条输电线路的输电损耗情况。
四、模型求解4.1 输电线路最短路径求解利用最短路径算法,我们可以求解出每个节点之间的最短路径,从而确定出最佳的输电线路路径。
4.2 输电线路负荷分配求解根据电网中各个节点的负荷情况,我们可以利用优化算法,如线性规划或遗传算法,来求解最佳的负荷分配方案。
4.3 输电线路输电损耗评估根据每条输电线路的电阻和负荷分配情况,我们可以计算出每条输电线路的实际输电损耗,从而评估电网的输电效率。
基于VC++的常规输电杆塔荷载计算软件系统
文中;罗玉鹤;陈祥和
【期刊名称】《三峡大学学报(自然科学版)》
【年(卷),期】2004(26)3
【摘要】在常规的输电线路杆塔设计工作中,必须对杆塔塔头荷载进行认真地分析和计算.根据杆塔荷载组合原则,分别计算各种不同荷载组合情况下,塔头上的外部荷载.荷载计算公式复杂,涉及参数多,用计算机实现复杂计算是完全必要的.本文较为详细地分析了输电杆塔荷载计算的编程过程和数据、图形的处理方法,开发设计出一
个完整的杆塔荷载计算软件.使用本软件不仅能完成复杂的荷载计算,而且计算准确、工作效率高.
【总页数】4页(P229-232)
【作者】文中;罗玉鹤;陈祥和
【作者单位】三峡大学,机械与材料学院,湖北,宜昌,443002;宁波市电力设计院,浙江,宁波,315000;三峡大学,机械与材料学院,湖北,宜昌,443002
【正文语种】中文
【中图分类】TM752
【相关文献】
1.基于VC++的非金属超声波检测仪校准装置软件系统设计 [J], 徐峰;林喜鉴
2.基于VC++的四轴运动控制卡软件系统开发研究 [J], 高煊;何广平
3.基于VC++的光纤通信中继距离设计软件系统 [J], 周峰;张晓锋;龙眉
4.基于VC++的数控鞋楦机软件系统设计 [J], 梅军进;汪小平;刘兰青
5.基于VC++的海水营养盐测试软件系统设计 [J], 程岩;马然;王洪亮;曹煊;曹璐因版权原因,仅展示原文概要,查看原文内容请购买。
基于三维GIS技术的输电线路地理信息系统的设计与实现摘要针对当前计算机图形及GIS技术的发展和电力系统输电线路管理需求的特点,本文以输电线路地理信息系统平台为例,研究了如何利用现有的数字高层模型(DEM)及相应算法实现海量三维地表模型的构建和如何运用设计模式的构造方法实现输电设备的关联组合等问题,并通过建立方位数据中间层的方法将地表数字高层模型、输电设备三维模型及各类属性信息有机的结合在一起,从而满足了输电线路GIS 系统的各类维护及查询要求,并为该平台日后成为线路设计、培训模拟等高层应用的平台构建了良好的开放性框架。
1引言随着计算机技术的飞速发展,地理信息系统(Geographic Information System,简称GIS)在整个电力行业中得到了越来越广泛的应用。
将GIS引入配电管理系统(DMS),并与用电MIS,负荷管理及SCADA等子系统相结合,为各级管理人员提供一套简单、迅速、方便的配电网运行管理系统已成为现代电力企业提高管理水平和工作效率的有效手段。
然而,目前在电力系统中广泛应用的主要还是基于二维坐标的GIS系统,其空间表现和分析能力都有很大的局限性。
输电线路是位于地理空间中的人工构建物,其线路距离长,通过地区的地理条件比较复杂,与众多电力线路和通讯线路交叉跨越,并且通常会通过居民区、公园和其它特殊区域。
输电线路及其杆塔位置与地理空间位置密切相关,特别是在垂直方向上的层次信息尤为重要,这使得二维地理信息系统无法达到其管理的需求。
近年来,计算机图形学的发展和计算机硬件性能的成倍提高使得三维表现技术日益完善,通过这些技术,我们能够构造更接近于现实的三维地表模型和各类设备模型,使得GIS系统从二维向三维发展。
本文通过运用三维GIS技术,结合模式设计方法,提出了一种构建三维输电线路GIS系统的方法,并在实际的工程中得到了实现。
2三维输电线路GIS系统的的特点及其实现难点相对于二维的GIS系统,三维输电线路GIS在其实现过程中有着明显的特点和实现难点,主要表现在以下几个方面:(1)在三维GIS中,无论是基于矢量结构还是基于栅格结构,对于不规则地学对象的精确表达都会遇到大数据量的存储与处理问题。
基于三维GIS技术的配电网线路的设计方法刘永福杨勇辽宁沈阳农业大学(110161)摘要:本文阐述了应用GIS开发工具SuperMap设计基于三维图象的农村配电线路的方法,介绍了如何利用现有的等高线生成数字高程模型(DEM)的技术,论述了三维模型建立的基本技术和在三维真实感场景下实现了配电线路的三维显示、查询与分析功能。
关键词:配电线路;数字高程模型;三维图象;GIS0 引言随着我国农村电网改造的进一步发展对配电线路的建设和维护都提出了新的要求。
如何有效降低配电线路的建设和维护费用以及提高配电网络自动化水平已经成为需要迫切解决的问题。
我国现在大多数的配电线路地理信息系统(GIS)都是基于二维的,以分层的形式显示地形和各种地表特征已经不能适应设计要求。
近些年来,以空间可视化技术和空间数据库技术为支撑的三维GIS技术的蓬勃发展,在大规模地形显示、空间数据管理和分析等方面都取得了突破性的进展,因而为研究新一代可视化配电管理系统提供了必要条件。
1 三维GIS技术世界原本是处在三维空间之中。
随着大规模地形显示和分析算法的出现以及实现三维GIS的关键技术的突破性进展,三维GIS技术已逐渐进入应用阶段。
与二维GIS相比,三维GIS用X,Y,Z来表述空间对象,对客观世界的表达能给人以更真实的感受,它以立体造型技术来展现地理空间现象,不仅能够表达空间对象间的平面关系,而且还能描述和表达它们之间的垂向关系,同时具有对空间对象进行其特有的三维空间分析和操作功能。
与CAD及各种科学计算可视化软件相比,三维GIS技术具有独特的管理复杂空间对象的能力及空间数据分析方法。
三维GIS除了具备传统二维GIS的传统功能以外,还具有如下的基本功能:(1)包容一维、二维对象。
将传统的二维GIS中的一维、二维对象置于三维立体空间中,存贮它们的真实几何位置与空间拓扑关系,以表现这些对象在垂直方向上的变化关系。
(2)三维空间的DBMS管理。
三维GIS的核心是三维空间数据库。
基于VC电缆测试系统的设计钱石;王天雷;王小东;王大承【期刊名称】《微型机与应用》【年(卷),期】2014(000)009【摘要】In order to research the performance changes of cable in its work process, the GUC motion controller of Googol Technology is used to construct a cable test system platform based on VS2008. Using the MFC editor interface method and built-in library functions of the controller to simulate the actual working condition, and then to write the exercise program of towline cable and the control interface program of PC. The short circuit, open circuit and motion parameters of the tested cable can be displayed in the control interface. The whole system has the advantages of simple and reliable operation.%为了研究电缆在工作过程中的性能变化,采用了固高科技 GUC 运动控制器,搭建了基于 VS2008的电缆测试系统平台。
利用MFC 编辑程序界面的方法以及控制器自带的库函数,模拟实际工作情况,编写了拖链电缆的运动程序以及上位机的控制界面程序。
控制界面可实时显示被测电缆短路、断路以及运动参数等信息。
目录0. 前言 (1)1. 悬索基本理论 (1)2. 方案设计 (1)3. 软件编程 (2)4. 系统调试和结果分析 (22)5. 结论及进一步设想 (24)参考文献 (24)课设体会 (26)基于VC界面的输电线路模型建立摘要:本文以悬索理论为基础,采用模块化设计方法,使用Visual Basic 2010版本编写程序代码,设计并实现了具有相应功能的输电线路的模型建立软件。
本文首先指出了输电线路的模型建立软件的背景和重要意义,然后再对各模块进行了详细设计,并通过应用实例来说明了软件的使用方法。
为便于软件的用户界面设计,将上述的各个模块划分为了若干子模块,并对各子模块窗体进行了详细的设计,对于该软件的一些重要的事件响应、类型定义以及子过程等,本文给出了其对应的程序代码,并对该软件使用的标准模块进行了说明。
最后,本文介绍了该软件功能的实现情况以及实验测试结果,演示了软件的用户界面和使用方法,实现了所有预期功能,并对该软件的设计与实现进行的总结和展望。
关键词:悬索理论;Visual Basic 2010;用户界面0.前言21世纪前10年到20年,是我国电力发展的关键时期,是中国电力发展规模最大的时期。
我国电力建设的规模和速度,是世界上任何国家都无法比拟的。
这是由我国人口众多、幅员辽阔、人均用电水平低的基本国情決定的。
现在, 中国的电力正方兴来艾,将目趋兴旺。
电力建设的任务非常艰巨、壮观。
然而,在输电线路的设计过程中,存在一些影响其效率和精确性的问题,其中之一就是架空索道的计算问题。
因此,有必要开发一套用于输电线路模型建立的软件,以提高输电线路模型建立的效率和精度,保证施工安全。
1. 悬索基本理论输电线路模型的建立的主要原理是悬索基本理论。
输电线路是以主缆为主要承重构件的柔性悬吊组合体系,主要靠恒载产生的初始拉力以及几何形状的改变来获得结构刚度,以抵抗荷载产生的变形。
在正常设计荷载作用下,即使材料应力没有超过弹性范围,也会由于结构的有限变形而表现出一定的几何非线性行为。
从有限位移理论的角度来分析,引起大跨度悬索输电线路的几何非线性的因素主要有三个:①缆索垂度效应;②梁柱效应:③大位移。
下面的设计将围绕此部分内容展开,是此部分内容的实现。
2. 方案设计输电线路模型的建立需要在一个界面输入输电线路的长度、高度、间距等参数,同时在输入各项参数后,需要生成一个输电线路的模型,用户可根据情况选择保存或不保存所生成的图形。
根据设计要求,采用的方案如下。
利用VC界面编程技术实现各项要求,包含用户登录界面、参数输入界面、图形生成及保存功能。
主要设计思想是自顶向下的编程思想。
3. 软件编程输电线路模型的建立采用自顶向下的设计思想,根据建模的需求来设计程序。
首先需要设计一个用户登录界面,在这个子程序中,我将用户名设为sau,密码为2012040702078,当用户在没有输入用户名和密码的情况下按确定键,程序将提示“用户名或密码不能为空”,当用户输入的用户名或密码错误时,程序将显示“用户名或密码输入错误”,当用户输入正确的用户名和密码,程序将跳转到参数输入界面。
登录界面程序的源代码如下:#include "stdafx.h"#include "DrawWire.h"#include "LoginDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// CLoginDlg dialogCLoginDlg::CLoginDlg(CWnd* pParent /*=NULL*/): CDialog(CLoginDlg::IDD, pParent){//{{AFX_DATA_INIT(CLoginDlg)m_strPassword = _T("");m_strUserName = _T("");//}}AFX_DATA_INIT}void CLoginDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CLoginDlg)DDX_Control(pDX, IDC_EDIT_PASSWORD, m_editPassword);DDX_Control(pDX, IDC_EDIT_USERNAME, m_editUserName);DDX_Text(pDX, IDC_EDIT_PASSWORD, m_strPassword);DDV_MaxChars(pDX, m_strPassword, 32);DDX_Text(pDX, IDC_EDIT_USERNAME, m_strUserName);DDV_MaxChars(pDX, m_strUserName, 32);//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CLoginDlg, CDialog)//{{AFX_MSG_MAP(CLoginDlg)//}}AFX_MSG_MAPON_EN_CHANGE(IDC_EDIT_PASSWORD, &CLoginDlg::OnEnChangeEditPassword) ON_EN_CHANGE(IDC_EDIT_USERNAME, &CLoginDlg::OnEnChangeEditUsername) END_MESSAGE_MAP()BOOL CLoginDlg::OnInitDialog(){CDialog::OnInitDialog();m_editUserName.SetFocus();return FALSE;}/////////////////////////////////////////////////////////////////////////////// CLoginDlg message handlersvoid CLoginDlg::OnOK(){UpdateData();m_strUserName = "sau"; //设置用户名m_strPassword = "2012040702078"; //设置密码if (m_strUserName.IsEmpty() || m_strPassword.IsEmpty())//检查用户输入是否有效 {AfxMessageBox("用户名和密码不能为空!);return ;}if (m_strUserName == "sau" && m_strPassword == "78"){CDialog::OnOK();}else{AfxMessageBox("用户名或密码输入错误");}}当用户输入了正确的用户名和密码,此时应显示出参数输入界面,根据输电线路建模的需要,我将输入的参数设定为电线杆的个数、高度、间距以及输电线路的总长度。
程序运行时默认电线杆的数量为3,高度为140米,间距为150米,输电线路的总长为360米,即每两个电线杆之间的线路长度为180米。
用户可根据自己的需要更改任意参数。
同时,程序还要考虑到实际情况,当用户输入的间距大于两个电线杆之间线路的长度时,此时明显不符合实际,系统将提示“长度不能小于间距”。
参数输入界面程序的源代码如下:// DrawWireDlg.cpp : implementation file#include "stdafx.h"#include "DrawWire.h"#include "DrawWireDlg.h"#include "DrawPicDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// CDrawWireDlg dialogCDrawWireDlg::CDrawWireDlg(CWnd* pParent /*=NULL*/) : CDialog(CDrawWireDlg::IDD, pParent){//{{AFX_DATA_INIT(CDrawWireDlg)m_dDistance = 150.0;m_dHeight = 140.0;m_dLength = 340.0;m_iCount = 3;//}}AFX_DATA_INITm_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}void CDrawWireDlg::DoDataExchange(CDataExchange* pDX) {CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CDrawWireDlg)DDX_Text(pDX, IDC_EDIT_DISTANCE, m_dDistance);DDX_Text(pDX, IDC_EDIT_HEIGHT, m_dHeight);DDX_Text(pDX, IDC_EDIT_LENGTH, m_dLength);DDX_Text(pDX, IDC_EDIT_COUNT, m_iCount);DDV_MinMaxInt(pDX, m_iCount, 2, 20);//}}AFX_DATA_MAPDDX_Control(pDX, IDC_LIST, m_lstInput);// DDX_Control(pDX, IDC_EDIT_COUNT, m_editcount); DDX_Control(pDX, IDC_EDIT_COUNT, m_editCount);}BEGIN_MESSAGE_MAP(CDrawWireDlg, CDialog)//{{AFX_MSG_MAP(CDrawWireDlg)ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUILD, OnBuild)//}}AFX_MSG_MAPON_EN_CHANGE(IDC_EDIT_COUNT, &CDrawWireDlg::OnChangeEditCount)ON_EN_KILLFOCUS(IDC_EDIT_COUNT, &CDrawWireDlg::OnKillfocusEditCount) ON_EN_CHANGE(IDC_EDIT_LENGTH, &CDrawWireDlg::OnEnChangeEditLength) ON_EN_CHANGE(IDC_EDIT_HEIGHT, &CDrawWireDlg::OnEnChangeEditHeight) END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// CDrawWireDlg message handlersBOOL CDrawWireDlg::OnInitDialog(){CDialog::OnInitDialog();SetIcon(m_hIcon, TRUE); // Set big iconSetIcon(m_hIcon, FALSE); // Set small iconm_lstInput.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); // TODO: Add extra initialization hereint iIndex = 0;m_lstInput.InsertColumn(iIndex++, "名称", 0, 120);m_lstInput.InsertColumn(iIndex++, "间距", 0, 100);m_lstInput.InsertColumn(iIndex++, "长度", 0, 100);OnKillfocusEditCount();return TRUE; // return TRUE unless you set the focus to a control}// If you add a minimize button to your dialog, you will need the code below// to draw the icon. For MFC applications using the document/view model,// this is automatically done for you by the framework.void CDrawWireDlg::OnPaint(){if (IsIconic()){CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);// Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// Draw the icondc.DrawIcon(x, y, m_hIcon);}else{CDialog::OnPaint();}}HCURSOR CDrawWireDlg::OnQueryDragIcon(){return (HCURSOR) m_hIcon;}void CDrawWireDlg::OnBuild(){if (UpdateData() && CDrawPicDlg::CheckDataValid(this)){//更新Datam_data.clear();for (int i = 0; i < m_lstInput.GetItemCount(); ++i){CString strDistance = m_lstInput.GetItemText(i, 1);CString strLength = m_lstInput.GetItemText(i, 2);ITEM item = ITEM(atoi(strDistance), atoi(strLength));if (item.iLength < item.iDistance){strDistance.Format("[%s]的长度不能小于间距!", m_lstInput.GetItemText(i, 0));AfxMessageBox(strDistance);return ;}m_data.push_back(item);}CDrawPicDlg dlgPic(this);dlgPic.DoModal();}}void CDrawWireDlg::OnOK(){SetFocus();}double CDrawWireDlg::GetDistance() {return m_dDistance;}double CDrawWireDlg::GetLength(){return m_dLength;}double CDrawWireDlg::GetHeight(){return m_dHeight;}double CDrawWireDlg::GetTotalDistance() {return m_dTotalDistance;}int CDrawWireDlg::GetCount(){return m_iCount;}const Datas& CDrawWireDlg::GetDatas(){return m_data;}void CDrawWireDlg::OnChangeEditCount(){}void CDrawWireDlg::OnKillfocusEditCount(){if (UpdateData()){int iSub = m_iCount - m_lstInput.GetItemCount() - 1;if (iSub == 0){return ;}CString strText;for (int i = 0; i < abs(iSub); ++i){if (iSub > 0){int iIndex = m_lstInput.GetItemCount();strText.Format("%d-%d", iIndex + 1, iIndex + 2);m_lstInput.InsertItem(iIndex, strText);m_lstInput.SetItemText(iIndex, 1, "150");m_lstInput.SetItemText(iIndex, 2, "180");}else{m_lstInput.DeleteItem(m_lstInput.GetItemCount() - 1);}}m_lstInput.UpdateLength();}}void CDrawWireDlg::SetLength(double dLength, double dDistance){m_dLength = dLength;m_dTotalDistance = dDistance;UpdateData(FALSE);}参数输入完毕,当用户点击“建立模型”时,程序应建立出输电线路的模型并将其显示出来,同时,当模型建立后,用户可根据自己的需求选择是否保存图像。