Skip to content

Commit 567f920

Browse files
committed
dxf import: fix text positions and orientation when importing DXF (fixes #16000)
1 parent 645f2c8 commit 567f920

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

src/app/dwg/libdxfrw/drw_entities.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1224,8 +1224,7 @@ void DRW_Insert::parseCode( int code, dxfReader *reader )
12241224
zscale = reader->getDouble();
12251225
break;
12261226
case 50:
1227-
angle = reader->getDouble();
1228-
angle = angle / ARAD; //convert to radian
1227+
angle = reader->getDouble() / ARAD;
12291228
break;
12301229
case 70:
12311230
colcount = reader->getInt32();
@@ -1590,7 +1589,7 @@ void DRW_Text::parseCode( int code, dxfReader *reader )
15901589
widthscale = reader->getDouble();
15911590
break;
15921591
case 50:
1593-
angle = reader->getDouble();
1592+
angle = reader->getDouble() / ARAD;
15941593
break;
15951594
case 51:
15961595
oblique = reader->getDouble();
@@ -1630,7 +1629,7 @@ bool DRW_Text::parseDwg( DRW::Version version, dwgBuffer *buf, duint32 bs )
16301629

16311630
QgsDebugMsg( "***************************** parsing text *********************************************" );
16321631

1633-
// DataFlags RC Used to determine presence of subsquent data, set to 0xFF for R14-
1632+
// DataFlags RC Used to determine presence of subsequent data, set to 0xFF for R14-
16341633
duint8 data_flags = 0x00;
16351634
if ( version > DRW::AC1014 ) //2000+
16361635
{

src/app/dwg/qgsdwgimporter.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2270,8 +2270,10 @@ void QgsDwgImporter::addText( const DRW_Text &data )
22702270

22712271
setPoint( dfn, f, "ext", data.extPoint );
22722272

2273-
QgsPointV2 p( QgsWkbTypes::PointZ, data.secPoint.x, data.secPoint.y, data.secPoint.z );
2274-
2273+
QgsPointV2 p( QgsWkbTypes::PointZ,
2274+
( data.alignH > 0 || data.alignV > 0 ) ? data.secPoint.x : data.basePoint.x,
2275+
( data.alignH > 0 || data.alignV > 0 ) ? data.secPoint.y : data.basePoint.y,
2276+
( data.alignH > 0 || data.alignV > 0 ) ? data.secPoint.z : data.basePoint.z );
22752277

22762278
if ( !createFeature( layer, f, p ) )
22772279
{

0 commit comments

Comments
 (0)