====== Develop topic ====== * [[developtopic#preknowledge|预备知识]] * [[developtopic#developtool|开发工具]] * [[ftp://x9x1.cn/_DevDoc/_template/06_主测试计划_A_PRE.doc|XT编程规范]] * [[developtopic#howtodevelop|如何开发XT]] * [[developtopic#howtowritedoc|如何编写开发文档]] * [[developtopic#redminetool|如何使用Redmine]] * [[developtopic#svntool|如何使用SVN]] * [[developtopic#technicalpoint|编程技术知识点]] * [[developtopic#customize|前后处理定制开发]] * [[developtopic#proeif|ProE接口开发]] * [[developtopic#translate|界面翻译]] ---- {{anchor:preknowledge}} **预备知识** - C参考书籍: 《C程序设计语言》 (Kernighan & Ritchie) - C++ 参考书籍:《C++ primer》 - Qt 参考书籍:《C++ GUI Qt 5编程》 - FEM 参考书籍:《有限单元法》 (王勖成) - 设计模式 - [[http://blog.csdn.net/ymc0329/article/details/7865339|QWT数值曲线绘制库]] - [[ftp://x9x1.cn/_DevDoc/XT_V0.1/00_编程规范/00_C++编程规范_A_PRE_20110207.docx|编程规范]] {{anchor:developtool}} **开发工具** * [[http://x9x1.cn:81/redmine|Redmine开发管理系统]] * [[https://x9x1.cn/dev/cae|SVN代码管理系统]] * 代码编辑编译器Microsoft Visual Studio 2015 * 代码浏览检索工具Visual Assistant * 测试工具Google Test * 代码比较工具Beyond Compare * [[http://www.dependencywalker.com|动态库依赖工具Dependency Walker]] {{anchor:howtodevelop}} **如何开发XT** 开发准备工作 * 安装Visual Studio2015 * 安装Qt5.15.2 * 向管理员<12450048@qq.com>申请[[https://x9x1.cn/redmine|Redmine帐号]]和[[https://x9x1.cn/svn|SVN帐号]] * 由SVN下载源代码以及[[https://x9x1.cn/svn/3rdparty_libs_win64|64位版第三方库]] * 修改build\set_env_win64_vs2015.bat中Qt库路径(@SET QTDIR=C:\Qt\5.15\5.15.2\msvc2015_64)和第三方库路径@SET THIRD_LIB_PATH=%CD%\3rdparty_libs_win64为实际路径 @SET PROJECT_CODE=XT @SET QTDIR=C:\Qt\5.15\5.15.2\msvc2015_64 @SET QTDIR_INCLUDE=%QTDIR%\include @SET QTDIR_BIN=%QTDIR%\bin @SET WORK_DIR=%1% @SET ROOT_DIR=%WORK_DIR%\..\..\..\.. @SET THIRD_LIB_PATH=D:\Work\9X1\cae\trunk\3rdParty @SET OCC_PATH=%THIRD_LIB_PATH%\occ @SET PYTHON_PATH=%THIRD_LIB_PATH%\python\v37 @SET HDF_PATH=%THIRD_LIB_PATH%\hdf @SET TAUCS_PATH=%THIRD_LIB_PATH%\taucs @SET CURL_PATH=%THIRD_LIB_PATH%\curl @SET CM2_PATH=%THIRD_LIB_PATH%\cm2 @SET BLAS_PATH=%THIRD_LIB_PATH%\blas @SET OPENCL_PATH=%THIRD_LIB_PATH%\opencl\x64 @SET PATH=%OCC_PATH%\win64\vc14\bin;%THIRD_LIB_PATH%\taucs\bin;%BLAS_PATH%/bin;%CM2_PATH%\libs;%QTDIR_BIN%;%PATH% @SET GLOBALMACRO=_CRT_SECURE_NO_WARNINGS;_WINDOWS;_UNICODE;_WIN64;_ENABLE_ANALYSIS;_ENABLE_UI @SET DEV_EXE=C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe @SET XT_INCLUDE=%WORK_DIR%\include @SET BIN_PATH=%WORK_DIR%\bin @SET CLOUT_PATH=%WORK_DIR%\clout @SET DistributionPath=%WORK_DIR%\distribution\x64 @SET PLATFORM_PATH=%WORK_DIR%\src\platform @SET COMMON_PATH=%WORK_DIR%\common @SET _CRT_DIR=%THIRD_LIB_PATH%\crt * 修改build\\build_win64_vs2015.bat中TAR_SLN目标编译方案文件的路径,这里为项目名(需要在build目录下创建同名的目录以放置该项目的编译启动文件) @SET TAR_SLN=%~dp0all.sln @CD /D %~dp0..\.. @CALL build\set_env_win64_vs2015.bat %CD% "%DEV_EXE%" %TAR_SLN% @exit 开发流程 - 技术组通过Redmine系统向开发组提出需求以及详细的需求文档和测试案例 - 项目经理通过Redmine系统向开发工程师分配任务 - 开发工程师评估任务可完成性以及完成时间 - 项目经理通过Redmine确认任务时间表 - 开发工程师开发/测试 - 开发工程师每周五通过Redmine系统更新任务进度并向项目经理提交本周工作报告 - 开发工程师完成开发测试之后通过Redmine系统向技术组报告测试案例结果 - 开发工程师形成开发文档 - 项目经理发布测试版(一般每周一次) - 技术组测试所需功能并通过Redmine系统反馈bug - 开发工程师修正bug并通过Redmine系统更新bug状态 - 技术组通过Redmine系统确认bug修正 - 技术组形成技术文档 {{anchor:howtowritedoc}} **如何编写开发文档** * 类定义文档 * [[ftp://x9x1.cn/_DevDoc/_template/06_主测试计划_A_PRE.doc|文档模板]] * 按照模板编写单独的txt文档 * 类名 * 成员变量:名称,类型,意义 * 成员函数:分为公有、保护、私有三种类型,函数原型,参数表,参数意义及类型,返回值,函数功能说明 * 类实现文档 * [[ftp://x9x1.cn/_DevDoc/_template/06_主测试计划_A_PRE.doc|文档模板]] * 按照模板在类实现文件的头部,以注释的形式编写 * 类名称 * 类功能介绍 * 类设计者 * 类设计时间 * 类的修改历史,包括修改人,修改时间,修改事项 * 对于比较复杂的类函数,应将函数逻辑以注释形式置于函数前 * API定义文档 * [[ftp://x9x1.cn/_DevDoc/_template/06_主测试计划_A_PRE.doc|文档模板]] * 按照模板编写单独的txt文档 * 函数说明:函数原型,参数表,参数意义及类型,返回值以及功能说明 * API实现文档 * [[ftp://x9x1.cn/_DevDoc/_template/06_主测试计划_A_PRE.doc|文档模板]] * 函数功能介绍 * 函数编写者 * 函数编写时间 * 函数逻辑 * 函数的修改历史,包括修改人,修改时间,修改事项 {{anchor:svntool}} **如何使用SVN** - [[ftp://x9x1.cn/_Software/Dev_Platform/Windows/|下载安装软件TortoiseSVN-1.6.12.20536-win32-svn-1.6.15.msi]] - 下载源代码或其他资源文件 - 进入目标目录(用户需要放置源文件的目录下) - 鼠标右键选择__SVN checkout...__ - 对话框中第一个输入框(URL of repository)输入源码仓库路径((仓库路径请向管理员询问)) - 点击OK,完成源码检出 - 上传文件 - 鼠标右键单击本地代码文件或是目录 - 选择__SVN commit...__ - 更新文件 - 鼠标右键单击本地代码文件或是目录 - 选择__SVN update...__ {{anchor:redminetool}} **如何使用Redmine** - [[http://www.redmine.org.cn/manual|在线指南]] - 进入[[http://x9x1.cn:81/redmine|Redmine管理站点]] - 选择工程Project进入登录页面,输入用户名以及密码((请向主管经理询问用户名以及密码)) - 单击【问题】页查看任务 - 单击【新建问题】新建任务 {{anchor:proeif}} **如何开发ProE接口** - 安装ProE软件(比如Creo4.0) - 将ProE toolkit工具库和头文件拷入三方库下(比如\proe\Creo4.0)对应的目录(include和lib文件夹) - 从build\proeif目录下启动对应版本的bat文件,进入IDE环境(注意ProE的版本与VS版本必须适配) - 解锁编译好的ProE定制动态库 - 在XT中编写代码在动态库路径下输出protk.dat文件 - 在XT中编写代码启动Proe程序调用ProE定制动态库 //dll_path为ProE定制动态库路径 "C:\Program Files\PTC\Creo 4.0\M140\Parametric\bin\protk_unlock.bat" //dll_path为ProE定制动态库路径 //dll_dir为ProE定制动态库所在文件夹路径 name ImportCreo4 startup dll exec_file text_dir revision Creo 4.0 end //为输入的proe文件路径,为写出的数据文件名,+f: -O: 为传到ProE定制动态库的参数,可以根据需要修改。 "C:\Program Files\PTC\Creo 4.0\M140\Parametric\bin\parametric.exe" -g:no_graphics -i:rpc_input +f: -O: {{anchor:translate}} **界面翻译** - 使用Qt Linguist工具 - 字符串命名空间规则 - 菜单项,工具条项,模型树:XT::MainFrame - 命令窗口:XT::CommandWindow - 其他:QObject