View Issue Details

IDProjectCategoryView StatusLast Update
0001364FreeCADBugpublic2014-01-24 12:58
Reporterpkoning2 Assigned Towmayer  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
PlatformMacOSMac OS XOS Version10.9
Product Versiontrunk 
Summary0001364: Issue 1256 is not actually fixed
DescriptionI tried to reopen 1256 but it doesn't seem that I can do that.
I'm running FreeCAD 0.14, the Mac test build announced a few days ago:
OS: Mac OS X
Platform: 64-bit
Version: 0.14.3052 (Git)
Branch: master
Hash: 88ff8076cdbcca2a52c13f40d1cb14df220b3c55
Python version: 2.7.5
Qt version: 4.8.6
Coin version: 3.1.3
SoQt version: 1.5.0
OCC version: 6.6.0

I changed my scripts to remove the workaround for issue 1256. That produced a different model than before, but not the right one. What's going on now is that move then rotate and rotate then move produce the SAME matrix (the one I should get for move then rotate). Very strange.
Steps To Reproduce>>> from FreeCAD import Base
>>> M=Base.Matrix
>>> m1=M()
>>> m2=M()
>>> m1.move(10,0,0)
>>> m1.rotateY(.2)
>>> m2.rotateY(.2)
>>> m2.move(10,0,0)
>>> m1
Matrix ((0.980067,0,0.198669,9.80067),(0,1,0,0),(-0.198669,0,0.980067,-1.98669),(0,0,0,1))
>>> m2
Matrix ((0.980067,0,0.198669,9.80067),(0,1,0,0),(-0.198669,0,0.980067,-1.98669),(0,0,0,1))
>>> m1==m2
True
>>> m3=M()
>>> m4=M()
>>> m3.move(10,0,0)
>>> m4.rotateY(.2)
>>> m1==m3*m4
False
>>> m1==m4*m3
True
>>>
TagsNo tags attached.
FreeCAD Information

Activities

peterl94

2014-01-23 22:33

developer   ~0004118

So does 0.13 have the correct behavior?

pkoning2

2014-01-24 00:56

reporter   ~0004120

No, 0.13 has different wrong behavior, the one documented in issue 1256. The thing about 0.13 is that I can work around the bug easily -- just put the successive matrix operations in reverse order. It consistently does all the matrix operations in reverse.
I discovered the issue when I tried the new 0.14 based Mac build. The script with workarounds produced bad output, as expected. So I took them all out, and *still* got bad (but different) output.

wmayer

2014-01-24 12:54

administrator   ~0004122

from FreeCAD import Base
M=Base.Matrix
V=Base.Vector

m1=M()
m1.move(10,5,-3)
m1.rotateY(.2)

m2=M()
m2.rotateY(.2)
m2.move(10,5,-3)

m3=M()
m3.move(10,5,-3)
m4=M()
m4.rotateY(.2)

assert(not m1==m3*m4)
assert(m1==m4*m3)

assert(m2==m3*m4)
assert(not m2==m4*m3)

Related Changesets

FreeCAD: master 0da6de62

2014-01-24 13:54:57

wmayer

Details Diff
+ fixes 0001364: Issue 1256 is not actually fixed Affected Issues
0001364
mod - src/Base/Matrix.cpp Diff File
mod - src/Mod/Test/BaseTests.py Diff File

Issue History

Date Modified Username Field Change
2014-01-23 20:22 pkoning2 New Issue
2014-01-23 22:33 peterl94 Note Added: 0004118
2014-01-24 00:56 pkoning2 Note Added: 0004120
2014-01-24 12:54 wmayer Note Added: 0004122
2014-01-24 12:58 wmayer Changeset attached => FreeCAD Master master 0da6de62
2014-01-24 12:58 wmayer Assigned To => wmayer
2014-01-24 12:58 wmayer Status new => closed
2014-01-24 12:58 wmayer Resolution open => fixed