Координаты окружности файла DXF изменили свой знак в текстовых данных

Когда открывается этот файл ASCII .dxf в таких программах, как AutoCAD, (x, y) координата центра окружности имеет положительный знак. Но когда я прочитал файл в текстовых данных с помощью программного обеспечения note ++, координата x круга изменила свой знак на отрицательный (в строке номер 5250), а координаты строки остались прежними, то есть начало координат круга изменилось с (91,7577, 103,4859) на (-91.757655,103.48592) в тексте. Я пробовал другие файлы dxf, включая круги и линии, но знак не изменился. Есть ли что-то, что вызвало изменение знака x в круге при чтении данных в тексте?

В программном обеспечении DraftSight круг находится между двумя вертикальными линиями, но когда я беру координаты объектов из текстовых данных и рисую в Geogebra, круг находится за пределами двух вертикальных линий. введите здесь описание изображения


person Toat    schedule 18.11.2016    source источник


Ответы (2)


Проверьте нормально (код 210). Может быть, это наоборот (0 0 -1). Также, если ваш кружок находится в разделе БЛОКИ, он может быть частью блока, вставленного с отрицательным масштабом.

person Maxence    schedule 18.11.2016
comment
Круг находится не в БЛОКАХ, а в разделе ОБЪЕКТЫ. Для нормального значения x равно 0, AcDbCircle 10 -91.757655 20 103.48592 30 0.0 40 1.988072 210 0.0 220 0.0 230 -1.0 0 ENDSEC. Итак, (код 230) должен быть перевернут как (0 0 -1)? - person Toat; 18.11.2016
comment
Нет, значение по умолчанию для 230 равно 1. - person Maxence; 18.11.2016
comment
Центр находится в OCS/ECS, а не в WCS - person Maxence; 18.11.2016
comment
Обычно я не вижу кода (210 x 220 y 230 z) в текстовых файлах. Я беру центральную точку из кода (10 x 20 y), связано ли это с OCS/ECS? У меня есть только ссылка на DXF от Autodesk, и я не полностью понимаю детали этих сокращений. - person Toat; 18.11.2016
comment
В справочнике по DXF см. главу 10, раздел Системы координат объекта (OCS). - person Maxence; 18.11.2016
comment
Согласно объяснению в главе 10, для вектора нормали по оси Z N = (0, 0, -1); //из (код 230) Nx = 0; //из (код 210) Ny = 0;//из (код 220) WCS по умолчанию на оси Y, Wy = (0, 1, 0); WCS по умолчанию по оси Z, Wz = (0, 0, 1); Если (abs (Nx) ‹ 1/64) и (abs (Ny) ‹ 1/64), то Ax = Wy X N = (0, 1, 0) X (0, 0, -1) = (-1, 0) , 0) в противном случае Ax = Wz X N Нахождение Ay, Ay = N X Ax = (0, 0, -1) X (-1, 0, 0) = (0, 1, 0) Итак, координата (x,y) меняется на (-x,y) в текстовых данных. - person Toat; 18.11.2016

Все это связано с концепцией экструзии. Если вы укажете свой CIRCLE в AutoCAD, вы получите следующую информацию:

  CIRCLE    
  Layer: "12"
  Space: Model space
  Color: 3 (green)    
  Linetype: "Continuous"
  PlotStyleName: Color_3
  Material: ByLayer
  Handle = a2
  center point, X=  91.7577  Y= 103.4859  Z=   0.0000
  radius    1.9881
  Extrusion direction relative to UCS:
     X=   0.0000  Y=   0.0000  Z=  -1.0000
     circumference   12.4914
              area   12.4169

Обратите внимание на этот бит:

  Extrusion direction relative to UCS:
     X=   0.0000  Y=   0.0000  Z=  -1.0000

Это показывает, что он экструдирован. Эти коэффициенты выдавливания сохраняются в чертеже с использованием кодов DXF 210, 220 и 230. В твоем случае:

210
0.0
220
0.0
230
-1.0

В AutoCAD вы обнаружите, что 2D-объекты часто выдавливаются, и это обычно указывается в справочной документации.

Все групповые коды DXF описаны здесь. Я думаю, вам также будет очень полезно прочитать о системе координат объектов (OCS) здесь. Эта последняя ссылка объясняет все о экструзии:

Скриншот статьи

Надеюсь это поможет.

person Andrew Truckle    schedule 21.11.2016