Commit Graph

90 Commits

Author SHA1 Message Date
tetektoza
f93fafdae6 TechDraw: Fix centerlines being double Y-axis transformed
As the title says. Currently when user exports to DXF, centerlines and
cosmetic edges appeared offset below their correct positions. The offset
was visible when opening exported DXF file in CAD software - centerlines
were displaced downward where they should be.

The issue was that cosmetic edges are already stored with the correct Y
orientation and should not be mirrored during export, so this caused
centerlines to be mirrored when they shouldn't be, resulting in
incorrect Y position.

So this is just a small modification to cosmetic edge export to skip the
Y-axis mirroring step.
2025-10-26 17:24:58 -05:00
wandererfan
2df371f50f [TD] Use isProjectGroupItem() in remaining cases
- isDerivedFrom<DrawProjGroupItem>() is no longer reliable due to smart
  view creation changes.
2025-09-30 13:56:45 -05:00
wandererfan
98f50c218a [TD]fix dimension not exported to dxf 2025-09-30 13:36:30 -05:00
Markus Reitböck
63ab3de853 TechDraw: use CMake to generate precompiled headers on all platforms
"Professional CMake" book suggest the following:

"Targets should build successfully with or without compiler support for precompiled headers. It
 should be considered an optimization, not a requirement. In particular, do not explicitly include a
 precompile header (e.g. stdafx.h) in the source code, let CMake force-include an automatically
 generated precompile header on the compiler command line instead. This is more portable across
 the major compilers and is likely to be easier to maintain. It will also avoid warnings being
 generated from certain code checking tools like iwyu (include what you use)."

Therefore, removed the "#include <PreCompiled.h>" from sources, also
there is no need for the "#ifdef _PreComp_" anymore
2025-09-23 00:50:59 +02:00
bofdahof
ba2c2ca5ad Console: rename PascalCase named methods to camelCase 2025-05-06 17:50:21 +02:00
Ladislav Michl
9683cf1e4f Base: rename Exception's PascalCase methods to camelCase 2025-05-05 23:50:01 +02:00
Luz Paz
97e172334b Fix typos
Found via `codespell -q 3 -L aci,addmin,ake,aline,alle,alledges,alocation,als,ang,anid,anormal,aply,apoints,ba,beginn,behaviour,bloaded,bottome,brushin,bu,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childrens,childs,colour,colours,commen,connexion,currenty,documentin,dof,doubleclick,dum,eiter,elemente,ende,feld,finde,findf,findn,fle,freez,graphin,hist,iff,incrementin,indexin,indicies,initialisation,initialise,initialised,initialises,initialisiert,inout,ist,itsel,kilometre,leadin,localy,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oce,oder,ontop,orgin,orginx,orginy,ot,pard,parm,parms,pres,programm,que,rady,recurrance,renderin,rin,ro,rougly,sectionin,seperator,serie,shs,sinc,siz,som,strack,substraction,te,technic,thist,thru,tread,tru,ue,uint,unter,uptodate,vas,vertexes,vew,wallthickness,whitespaces -S "./.git,*.po,*.ts,*.pdf,./ChangeLog.txt,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./src/CXX,./src/zipios++,./src/Base/swig*,./src/Mod/Robot/App/kdl_cp,./src/Mod/Import/App/SCL,./src/WindowsInstaller,./src/Doc/FreeCAD.uml,./src/Base/StackWalker.cpp,./build/doc/SourceDoc,./tools/build/WindowsInstaller/lang,./src/Mod/TechDraw/Templates/locale"`
2025-03-31 23:00:32 +02:00
wandererfan
a10e93befe [TD]apply review comments 2025-03-21 09:49:14 -04:00
wandererfan
0884babb4d [TD]allow view creation in main thread if gui no available 2025-03-09 19:48:22 -04:00
wandererfan
0a5b3f63a4 [TD]prevent crash when no event loop
- threaded hlr operations do not return if qApplication is not available
2025-03-09 19:48:08 -04:00
Benjamin Bræstrup Sayoc
c53679422b Remove magic numbers and hard type enums in DimensionFormatter.h.h
- Remove currently present magic numbers
- Hard type enums, so magic numbers can no longer be introduced. We don't want people to introduce magic numbers.
2025-02-17 12:16:49 -05:00
Max Wilfinger
5925c7a560 Merge pull request #19097 from hyarion/refactor/template-based-is-derived-from
Simplify code by using BaseClass' isDerivedFrom<> and is<>
2025-01-27 20:40:08 +01:00
Dan Taylor
3ac01778f7 TechDraw: Fix finding outlines consisting of a single closed edge 2025-01-27 17:55:50 +01:00
Benjamin Nauck
6f535f19fb Prefer to use BaseClass's isDerivedFrom<T> over non template or Base::Type's
Regex based changes, manually verified
2025-01-27 16:08:18 +01:00
Benjamin Bræstrup Sayoc
52fe0eec53 [TechDraw] Return logic simplification (#16504)
* [TechDraw] AppTechDrawPy.cpp return logic simplification

* [TechDraw] CosmeticExtension.cpp return logic simplification

* [TechDraw] DrawBrokenView.cpp return logic simplification

* [TechDraw] HatchLine.cpp return logic simplification

* [TechDraw] LineGenerator.cpp return logic simplification

* [TechDraw] Preferences.cpp return logic simplification

* [TechDraw] ShapeExtractor.cpp return logic simplification

* [TechDraw] MDIViewPage.cpp return logic simplification

* [TechDraw] QGILeaderLine.cpp return logic simplification

* [TechDraw] QGIRichAnno.cpp return logic simplification

* [TechDraw] QGTracker.cpp return logic simplification
2024-11-18 16:14:47 -03:00
WandererFan
50f970efd7 [TD]Cosmetic function overhaul (#14216)
* [TD]Cosmetic geometry and tools update

- all cosmetics to store geometry in same form
- all cosmetics to survive scaling and rotation
- extension functions to survive scaling and rotation

* [TD]overhaul leader point storage and editing

- add py routine makeLeader(points)

* [TD]add leader conversion utility

* [TD]Set Leader RotateWithView default to true

* [TD]fix intersection vertex position

* [TD]add CosmeticEdge::makeLineFromCanonicalPoints

* [TD]fix 2 Extension tools

- positioning in DrawCosmeticCircle
- mishandling of points in execLineParallelPerpendicular

* [TD]Remove duplicate constexpr

* [TD]fix 2x Cosmetic arc tools

* [TD]refactor LineFormat out of Cosmetic

* [TD]move cosmetic appearance settings to LineFormat

* [TD]remove 2 unused methods

* [TD]apply format to blue line & circle tools

* [TD]fix ballon arrowhead does not rotate with view

* [TD]fix CosmeticCircle3Points

* [TD]allow multiple cosmetic object deletions

* [TD]fix extend/shorten centerline
2024-05-23 09:41:42 -04:00
edi271
fe9927f466 [TD]Expose DimExtent in Python 2024-05-17 10:55:56 +02:00
wandererfan
023dd8ed8a [TD]fix location of CV on rotated views 2023-12-24 12:27:25 -05:00
Chris Hennes
cfd41683a5 Core: Enable compiling with MSVC /permissive- (#11014)
* Base: Fixes for MSVC permissive-

* App: Fixes for MSVC permissive-

* Gui: Fixes for MSVC permissive-

* Main: Fixes for MSVC permissive-

* Fem: Fixes for MSVC permissive-

* Material: Fixes for MSVC permissive-

* Part: Fixes for MSVC permissive-

* Mesh: Fixes for MSVC permissive-

* Points: Fixes for MSVC permissive-

* Robot: Fixes for MSVC permissive-

* TechDraw: Fixes for MSVC permissive-

* Path: Fixes for MSVC permissive-

* Core; Changes per review comments

* TD: Revision from wandererfan

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-11-27 17:37:29 +01:00
Pieter Hijma
776649be06 TechDraw: Expose two functions for SVG export 2023-09-20 09:27:17 -04:00
Chris Hennes
c60e03741a TD: Wrap PyArg_ParseTupleAndKeywords 2023-08-25 15:34:26 -05:00
wandererfan
41817c188f [TD]split GeometryObject 2023-08-18 15:18:42 -04:00
wandererfan
8a11528a7e [TD]corrupt dim reference detect and correct 2023-03-22 20:09:35 -04:00
wandererfan
704fb894a5 [TD]getters and setters for geometry
- make attributes private (or protected) and use
  getters and setters instead of accessing attributes
  directly.
2023-02-28 08:15:06 -05:00
wandererfan
437457e996 [TD]remove obsolete log messages 2023-01-13 12:15:33 -05:00
Uwe
864ef31d81 [TD] minor fixes
- typos and code formatting as reported by the CI
- some more re-sorting
2023-01-09 12:02:50 +01:00
Uwe
79ae9b8280 [TD] attempt to fix compilation with PCH after #8141
- also resort includes
2023-01-09 11:26:51 +01:00
wandererfan
208104e9e0 [TD]Refactor Dimensions for 3d upgrade
- separate validation, geometry and reference handling into
  individual files
- improve 3d reference geometry handling
- eliminate duplicate dim creation code

- add Dimension reference repair dialog

- Refactor formatting out of DrawViewDimension

- move dimension repaint control to ViewProvider
2023-01-07 16:32:03 -05:00
wmayer
6c7c001618 TD: [skip ci] fix build failure with boost >= 1.78 on Windows 2022-12-08 22:11:33 +01:00
wmayer
77bae9c9a0 TD: fix memory leaks with raw pointers of GeometryObject
Replacing the use of raw pointers of GeometryObject with shared pointers fixes the observed memory leaks when running the unit tests of TechDraw
2022-11-15 16:16:08 -05:00
Uwe
01c7df9f4f [TD] A* - C*: remove unused includes
- also sort includes
- also sort PreCompiled.h
2022-10-03 23:05:36 +02:00
wandererfan
a88d4730d8 [TD]New face finder algo 2022-09-05 19:52:34 -04:00
wandererfan
aa2b1b8392 [TD]CI clang warnings 2022-09-05 17:48:38 -04:00
berniev
71dc5ead2f Mod: Use override etc 2 2022-08-09 12:52:26 +02:00
berniev
5fa05ab83d Mod: Redundant_string_initialization 2022-08-08 16:52:42 +02:00
berniev
53ba98d636 Mod: use empty 2022-08-06 19:30:13 +02:00
wmayer
c5910c1530 TD: [skip ci] Fix several clazy issues:
* Using copy-ctor but class TechDraw::anglePoints has a trivial copy-ctor but non trivial assign operator [-Wclazy-rule-of-two-soft]
* Using copy-ctor but class TechDraw::arcPoints has a trivial copy-ctor but non trivial assign operator [-Wclazy-rule-of-two-soft]
* Missing reference in range-for with non trivial type [-Wclazy-range-loop-reference]
* C++11 range-loop might detach Qt container (QList) [-Wclazy-range-loop-detach]
* signal arguments need to be fully-qualified (TechDrawGui::QGIView instead of QGIView) [-Wclazy-fully-qualified-moc-types]
* Use multi-arg instead [-Wclazy-qstring-arg]
* Use midRef() instead [-Wclazy-qstring-ref]
2022-07-25 17:00:48 +02:00
Uwe
7b4e5d7522 [TD] remove more superfluous nullptr checks 2022-07-20 02:32:52 +02:00
Uwe
36add10c86 [TD] App: remove some superfluous nullptr checks 2022-07-19 02:03:50 +02:00
Benjamin Alterauge
fead475d64 Group dxf relevant files in one folder 2022-07-16 10:55:24 +02:00
Wanderer Fan
60b79e0d72 [TD]fix Dimension export to DXF 2022-06-30 08:50:07 -04:00
Wanderer Fan
75486e930b [TD]Include CosmeticLines in Dxf 2022-06-30 08:50:07 -04:00
Wanderer Fan
1bf7803b15 [TD]fix diameter dim alignment in DXF 2022-03-24 15:22:23 -04:00
wmayer
e8f9c8a1d3 TD: modernize C++11
* use nullptr
2022-03-23 19:26:14 +01:00
Wanderer Fan
bb779f8ee2 [TD]fix double units in dxf page export 2022-03-22 08:41:36 -04:00
Uwe
f8191d1899 [TD] remove Python.h and Xerces
seems not to be necessary anymore
2022-03-21 02:53:47 +01:00
wmayer
1f12dca2b4 Py: replace BaseExceptionFreeCADError with more suitable exception types 2022-03-17 13:54:23 +01:00
wmayer
0f9768fb33 Fix coverity issue:
* CID 332682: Resource leak
* CID 350607: Resource leak
* CID 332677: Resource leak
2022-03-14 11:35:04 +01:00
Wanderer Fan
1f1012f7a9 [TD]correct retrieval of dim text for DXF export 2022-02-11 16:24:35 -05:00
marioalexis
9801f76e2f TechDraw: Call PyMem_Free() to free allocated buffer 2022-02-09 16:04:59 +01:00