Developer hub/zh-cn: Difference between revisions

From FreeCAD Documentation
(Created page with "== 开发者文档 == 开发者文档由以下部分构成。")
No edit summary
 
(75 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{TOCright}}

[[Image:Crystal_Clear_app_tutorials.png|right|150]]
[[Image:Crystal_Clear_app_tutorials.png|64px]]
----


如果你对开发FreeCAD软件有兴趣,想贡献于这个项目的开发,这里正有你该了解的内容。
如果你对开发FreeCAD软件有兴趣,想贡献于这个项目的开发,这里正有你该了解的内容。


这些页面还处于开发的早起阶段。如果你找不到想看的信息,如果你在别处看到了有用的信息,而我们没有链接在这里,那么请在[http://forum.freecadweb.org/index.php?sid=5f84150e79db8842e277b042077097ff 论坛]里留下你的评论有人会调查处理它们(或者,大胆你,为什么不直接编辑这个页面呢?)。
这些页面还处于开发的早起阶段。如果你找不到想看的信息,如果你在别处看到了有用的信息,而我们没有链接在这里,那么请在[http://forum.freecadweb.org/index.php?sid=5f84150e79db8842e277b042077097ff 论坛]里留下你的评论。会有人仔细看,认真处理它们(或者,大胆你,为什么不直接编辑这个页面呢?)。



<span id="Developer_Documentation"></span>
== 开发者文档 ==
== 开发者文档 ==
开发者文档由以下部分构成。


开发者文档由以下部分构成:
=== Do it yourself: Compiling FreeCAD ===

* [[Source code management]]
<span id="Compiling_FreeCAD"></span>
* [[Tracker|Find assistance]] when you have a problem or think you may have found a bug
=== 编译 FreeCAD ===
* [[CompileOnWindows|Compiling on Windows]]

* [[CompileOnUnix|Compiling on Unix]]
<div class="mw-translate-fuzzy">
* [[CompileOnMac|Compiling on Mac OS X]]

* [[Licence|Licence details]] about the FreeCAD licences
*[https://github.com/FreeCAD/FreeCAD Github 代码库]. 如果你是git新手, 请阅读[[Source code management|Source code management]]
* [[Third Party Libraries]]
* [[Compile_on_Docker|用Docker编译]]
* [[Third Party Tools]]
* [[Compile_on_Windows|在Windows上编译]]
* [[Start up and Configuration]]
* [[Compile_on_Linux|在Linux上编译]]
* [[Source documentation]]
* [[Compile_on_MacOS|在Mac OS X上编译]]
* 关于FreeCAD的[[License/zh-cn|许可协议细节]]
* [[Third Party Libraries|第三方程序库]]
* [[Third Party Tools|第三方工具库]]
* [[Start up and Configuration|起始和配置]]
* [[Source documentation/zh-cn|源文档]]
* 当你有问题或你认为发现了一个bug的时候,请使用 [[Tracker|bug tracker]] 。
</div>

<span id="Packaging"></span>
=== 打包 ===

[[Packaging|打包]] 包括取得编译好的FreeCAD的二进制文件和Python源文件和将他们分发到使用的系统中

* [[Linux_packaging|Linux 打包]]
** [[Debian_development|Debian 开发版]]
** [[Debian_Unstable|Debian 不稳定版]]
** [[Git_buildpackage|Git 构建包]]
* [[Windows_packaging|Windows 打包]]
* [[MacOS_packaging|MacOS 打包]]

<span id="Build_Support_Tools"></span>
===制作支持工具===

* [[FreeCAD Build Tool/zh-cn|FreeCAD构建工具]]
** [[Module_Creation/zh-cn|添加应用模块]]给FreeCAD
* [[Debugging/zh-cn|调试]]FreeCAD
* [[Testing/zh-cn|测试]]FreeCAD
* [[Compiling (Speeding up)/zh-cn|编译(加速)]]FreeCAD
* [[Continuous Integration/zh-cn|持续集成]]

<span id="Modifying_FreeCAD"></span>
===修改FreeCAD===

<div class="mw-translate-fuzzy">
* 理解[[The FreeCAD source code|FreeCAD的源代码]]
* 向FreeCAD或工作台添加[[Gui Command|功能]]
* [[Branding/zh-cn|品牌化]]或者说''如何让FreeCAD看起来很特别''
* 我们为FreeCAD做的[[Artwork/zh-cn|艺术工作]],你可以自由重用
* [[Artwork_Guidelines/zh-cn|艺术工作指南]]列出了图标设计的标准
* [[Localisation/zh-cn|翻译FreeCAD]]
* [[Extra python modules/zh-cn|附加Python模块]],如何在FreeCAD里扩展Python功能
*[[Google Summer of Code/zh-cn|谷歌代码之夏]],参与谷歌的学生支持计划
</div>

* [[Translating an external workbench|Translating an external workbench]]

<span id="Module_developer&#039;s_guide"></span>
=== 模块开发者指南 ===

[https://github.com/qingfengxia/FreeCAD_Mod_Dev_Guide FreeCAD模块开发指南]:这是一本在Github上写作的电子书。如要贡献,请fork然后发送pull request。

章节:
* 总体情况和软件架构
* 源代码结构
* Base和App模块
* Gui模块
* Python包封
* 模块设计
* FEM模块源代码分析(混合了C++和Python)
* CFD模块的开发(纯Python)
* 模块测试和纠错
* 通过git贡献代码

这个git仓库的最新pdf预览版,可以在[https://github.com/qingfengxia/FreeCAD_Mod_Dev_Guide/tree/master/pdf pdf文件夹]下载到。

<span id="Internals"></span>
=== 内部结构 ===

<span id="OpenCascade_Documentation"></span>
=== OpenCascade文档===

OpenCascade是一个用于三维曲面和实体建模、CAD数据交换和可视化的软件开发平台,主要采用c++库的形式出现。

* [http://opencascade.wikidot.com/romansarticles Roman Lygin的教程]
* [https://dev.opencascade.org/doc/overview/html/index.html 完整的在线文档]
* [https://dev.opencascade.org/doc/refman/html/index.html 参考手册]
* [http://opencascade.wikidot.com OpenCascade维基百科]

<span id="File_format"></span>
==== 文件格式 ====

[[File_Format_FCStd|File Format FCStd]]. The files created with FreeCAD are {{incode|.zip}} files that include the [https://en.wikipedia.org/wiki/Boundary_representation BREP] geometry, as well as XML data that describes the document.

<span id="Sketcher_solver"></span>
==== Sketcher求解器 ====

* [https://forum.freecadweb.org/viewtopic.php?f=10&t=36355 Sketcher Solver Architecture Booklet] (forum thread), [https://github.com/abdullahtahiriyo/FreeCADBooks/tree/master/FreeCAD_Solver_Architecture source] in GitHub.
* [https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Sketcher/App/planegcs/ PlaneGCS solver] in the FreeCAD source code; important files are [https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Sketcher/App/planegcs/GCS.cpp GCS.cpp] and [https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Sketcher/App/planegcs/SubSystem.cpp SubSystem.cpp].
* [https://forum.freecadweb.org/viewtopic.php?f=9&t=29192 Recent Several Sketcher improvements].


The sketcher solver isn't perfect, as there are some issues with numerical precision when using large values, see [https://forum.freecadweb.org/viewtopic.php?f=10&t=40502 Adventure of fixing sketcher solver for large sketches].
=== Build Support Tools ===
* The [[FreeCAD Build Tool]]
** [[Module_Creation|Adding an application module]] to FreeCAD
* [[Debugging]] FreeCAD
* [[Testing]] FreeCAD
* [[Compiling (Speeding up)]] FreeCAD
* [[Continuous Integration]]


The development of a new solver architecture could improve the way the solver is used both in the [[Sketcher Workbench|Sketcher Workbench]], and for assembly of 3D bodies. See [https://forum.freecadweb.org/viewtopic.php?f=20&t=40525 Reimplementing constraint solver].
=== Modifying FreeCAD ===
* Understanding [[The FreeCAD source code]]
* Add [[Gui Command|Features]] to FreeCAD or a Workbench
* [[Branding]] or ''how to give FreeCAD a unique look''
* [[Artwork]] we made for FreeCAD, that you can freely reuse
* [[Artwork_Guidelines]] standards for icons
* [[Localisation|Translating FreeCAD]]
* [[Extra python modules]], or ''how to extend python functionality within FreeCAD''
*[[Google Summer of Code]] get involved via Google's student support program


<span id="Roadmap"></span>
=== Module developer's guide ===
== 路线图 ==
[https://github.com/qingfengxia/FreeCAD_Mod_Dev_Guide FreeCAD Mod Dev Guide]: This is an ebook under writing on github, please fork and send pull request to contribute.


FreeCAD虽然在特定领域已经可用了,但是在跨入主流CAD的路途上,它才走了万里长征第一步。要登上与商业软件一争高下的平台,我们还有很多工作要做。
Chapters:
* Overview and Software Architecture
* Source code structure
* Base and App module
* Gui module
* Python wrapping
* Modular design
* Fem module source analysis (mixed C++ and Python)
* Development of CFD Module (pure Python)
* Module testing and debugging
* Contribute code with git


[[FreeCAD_1.0_Development_Cycle|FreeCAD 1.0 开发周期]]
Latest pdf preview can be downoaded from [https://github.com/qingfengxia/FreeCAD_Mod_Dev_Guide/tree/master/pdf pdf folder] of this git repo


<span id="Community"></span>
=== OpenCascade Documentation ===
== 社区 ==
* [http://opencascade.wikidot.com/romansarticles Roman Lygin's tutorials]
* [https://dev.opencascade.org/doc/overview/html/index.html Full Online Documentation]
* [https://dev.opencascade.org/doc/refman/html/index.html Reference Manual]
* [http://opencascade.wikidot.com The openCascade wiki]


* [ircs://irc.libera.chat:6697/freecad IRC channel] ,和 [https://gitter.im/FreeCAD/FreeCAD gitter channel]同步
== Roadmap ==
* [https://forum.freecad.org/viewforum.php?f=6 开发论坛]
FreeCAD, though usable in certain areas, is at the beginning of a long way into the CAD mainstream. There is still a lot to do
to reach a state where we can compete with commercial software.


<div class="mw-translate-fuzzy">
* [[Development roadmap]]
* [[Development roadmap/zh-cn|开发路线图]]
</div>


<div class="mw-translate-fuzzy">
== Credits ==
==信用==
[[Contributors]]
[[Contributors/zh-cn|贡献者]]
</div>


{{Userdocnavi{{#translation:}}}}
[[Category:Hubs]]
[[Category:Developer Documentation]]
[[Category:Hubs{{#translation:}}]]
[[Category:Developer Documentation{{#translation:}}]]

Latest revision as of 16:53, 4 April 2024


如果你对开发FreeCAD软件有兴趣,想贡献于这个项目的开发,这里正有你该了解的内容。

这些页面还处于开发的早起阶段。如果你找不到想看的信息,如果你在别处看到了有用的信息,而我们没有链接在这里,那么请在论坛里留下你的评论。会有人仔细看,认真处理它们的(或者,大胆如你,为什么不直接编辑这个页面呢?)。

开发者文档

开发者文档由以下部分构成:

编译 FreeCAD

打包

打包 包括取得编译好的FreeCAD的二进制文件和Python源文件和将他们分发到使用的系统中

制作支持工具

修改FreeCAD

模块开发者指南

FreeCAD模块开发指南:这是一本在Github上写作的电子书。如要贡献,请fork然后发送pull request。

章节:

  • 总体情况和软件架构
  • 源代码结构
  • Base和App模块
  • Gui模块
  • Python包封
  • 模块设计
  • FEM模块源代码分析(混合了C++和Python)
  • CFD模块的开发(纯Python)
  • 模块测试和纠错
  • 通过git贡献代码

这个git仓库的最新pdf预览版,可以在pdf文件夹下载到。

内部结构

OpenCascade文档

OpenCascade是一个用于三维曲面和实体建模、CAD数据交换和可视化的软件开发平台,主要采用c++库的形式出现。

文件格式

File Format FCStd. The files created with FreeCAD are .zip files that include the BREP geometry, as well as XML data that describes the document.

Sketcher求解器

The sketcher solver isn't perfect, as there are some issues with numerical precision when using large values, see Adventure of fixing sketcher solver for large sketches.

The development of a new solver architecture could improve the way the solver is used both in the Sketcher Workbench, and for assembly of 3D bodies. See Reimplementing constraint solver.

路线图

FreeCAD虽然在特定领域已经可用了,但是在跨入主流CAD的路途上,它才走了万里长征第一步。要登上与商业软件一争高下的平台,我们还有很多工作要做。

FreeCAD 1.0 开发周期

社区

信用

贡献者