Почему мой файл STEP вызывает ошибку сегментации?

Я пишу программу для аэродинамического дизайна и хочу экспортировать геометрию, заданную пользователем, в виде файла STEP. Мне удалось сгенерировать файл STEP, который на мой взгляд кажется завершенным, но когда я пытаюсь открыть его с помощью FreeCAD, я получаю ошибку сегментации. Что не так с моим файлом?

Я пробовал изменить тип объекта для edge_curve на что-то, кроме строки, но все равно получаю ту же ошибку. Я также пытался открыть файл с помощью Solidworks, но он также не может открыть файл.

Вот сообщение об ошибке от FreeCAD:

Program received signal SIGSEGV, Segmentation fault.
#0  /lib/x86_64-linux-gnu/libc.so.6(+0x3ef20) [0x7f609a911f20]
#1  0x7f6009b06bd4 in StepShape_EdgeCurve::EdgeGeometry() const from /usr/lib/x86_64-linux-gnu/libTKSTEPBase.so.7+0x4
#2  0x7f600d92ae4e in StepToTopoDS_TranslateEdgeLoop::Init(opencascade::handle<StepShape_FaceBound> const&, TopoDS_Face const&, opencascade::handle<Geom_Surface> const&, opencascade::handle<StepGeom_Surface> const&, bool, StepToTopoDS_Tool&, StepToTopoDS_NMTool&) from /usr/lib/x86_64-linux-gnu/libTKSTEP.so.7+0x10de

Есть еще кое-что, но эти строки кажутся наиболее актуальными. Может ли кто-нибудь указать, где я ошибся?

ИЗМЕНИТЬ

Я внес предложенные изменения, и теперь FreeCAD откроется, но в области дизайна ничего не отображается. Ошибок тоже не выкидывает. Я не уверен, что сейчас происходит.

ISO-10303-21;
HEADER;
FILE_DESCRIPTION ( ( 'STEP AP203' ) , '1' ) ;
FILE_NAME ( 'test_plane.stp' , '', ('Author'), (''), 'MachUpX', 'MachUpX', 'Unknown' ) ;
FILE_SCHEMA ( '' );
ENDSEC;

DATA;
#15 = SHAPE_DEFINITION_REPRESENTATION ( '', #16 , #101 ) ;
#16 = PRODUCT_DEFINITION_SHAPE ( 'test_plane' , 'NONE' , #18 ) ;
#18 = PRODUCT_DEFINITION ( 'NONE' , 'NONE' , #19 , #20 ) ;
#19 = PRODUCT_DEFINITION_FORMATION ( 'version1' , 'NONE' , #21 ) ;
#20 = PRODUCT_DEFINITION_CONTEXT ( 'NONE' , #23 , 'NONE' ) ;
#21 = PRODUCT ( 'no1' , 'test_plane' , 'Generated by MachUpX' , ( #22 ) ) ;
#22 = PRODUCT_CONTEXT ( 'NONE' , #23 , 'aeronautics' ) ;
#23 = APPLICATION_CONTEXT ( 'AP 203' ) ;
#200 = MANIFOLD_SOLID_BREP ( 'v_stab_right' , #201 ) ;
#201 = CLOSED_SHELL ( 'NONE' , ( #202 , #310 , #418 ) ) ;
#202 = ADVANCED_FACE ( 'NONE' , ( #203) , #204 , .T. ) ;
#203 = FACE_OUTER_BOUND ( 'NONE' , #209 , .T. ) ;
#204 = PLANE ( 'NONE' , #205 ) ;
#205 = AXIS2_PLACEMENT_3D ( 'NONE' , #206 , #207 , #208 ) ;
#206 = CARTESIAN_POINT ( 'NONE' , ( -3.000000 , 0.000000 , -0.100000 ) ) ;
#207 = DIRECTION ( 'NONE' , ( -1.000000 , 0.000000 , 0.000000 ) ) ;
#208 = DIRECTION ( 'NONE' , ( -0.000000 , -1.000000 , -0.000000 ) ) ;
#210 = ORIENTED_EDGE ( 'NONE' , * , * , 211 , .T. ) ; 
#211 = EDGE_CURVE ( 'NONE' , #212 , #214 , #216 , .T. ) ;
#212 = VERTEX ( 'NONE' , #213 ) ;
#213 = CARTESIAN_POINT ( 'NONE' , ( -3.750000 , 0.000000 , -0.100000 ) ) ;
#214 = VERTEX ( 'NONE' , #215 ) ;
#215 = CARTESIAN_POINT ( 'NONE' , ( -3.525788 , 0.023681 , -0.100000 ) ) ;
#216 = LINE ( 'NONE' , #217 , #218 ) ;
#217 = CARTESIAN_POINT ( 'NONE' , ( -3.750000 , 0.000000 , -0.100000 ) ) ;
#218 = VECTOR ( 'NONE' , #219 , 0.2254588471561799 ) ;
#219 = DIRECTION ( 'NONE' , ( 0.994469 , 0.105034 , 0.000000 ) ) ;
#220 = ORIENTED_EDGE ( 'NONE' , * , * , 221 , .T. ) ; 
#221 = EDGE_CURVE ( 'NONE' , #222 , #224 , #226 , .T. ) ;
#222 = VERTEX ( 'NONE' , #223 ) ;
#223 = CARTESIAN_POINT ( 'NONE' , ( -3.525788 , 0.023681 , -0.100000 ) ) ;
#224 = VERTEX ( 'NONE' , #225 ) ;
#225 = CARTESIAN_POINT ( 'NONE' , ( -3.301004 , 0.041113 , -0.100000 ) ) ;
#226 = LINE ( 'NONE' , #227 , #228 ) ;
#227 = CARTESIAN_POINT ( 'NONE' , ( -3.525788 , 0.023681 , -0.100000 ) ) ;
#228 = VECTOR ( 'NONE' , #229 , 0.22545914553885527 ) ;
#229 = DIRECTION ( 'NONE' , ( 0.997007 , 0.077315 , 0.000000 ) ) ;
#230 = ORIENTED_EDGE ( 'NONE' , * , * , 231 , .T. ) ; 
#231 = EDGE_CURVE ( 'NONE' , #232 , #234 , #236 , .T. ) ;
#232 = VERTEX ( 'NONE' , #233 ) ;
#233 = CARTESIAN_POINT ( 'NONE' , ( -3.301004 , 0.041113 , -0.100000 ) ) ;
#234 = VERTEX ( 'NONE' , #235 ) ;
#235 = CARTESIAN_POINT ( 'NONE' , ( -3.075733 , 0.049881 , -0.100000 ) ) ;
#236 = LINE ( 'NONE' , #237 , #238 ) ;
#237 = CARTESIAN_POINT ( 'NONE' , ( -3.301004 , 0.041113 , -0.100000 ) ) ;
#238 = VECTOR ( 'NONE' , #239 , 0.22544175959974602 ) ;
#239 = DIRECTION ( 'NONE' , ( 0.999243 , 0.038895 , 0.000000 ) ) ;
#240 = ORIENTED_EDGE ( 'NONE' , * , * , 241 , .T. ) ; 
#241 = EDGE_CURVE ( 'NONE' , #242 , #244 , #246 , .T. ) ;
#242 = VERTEX ( 'NONE' , #243 ) ;
#243 = CARTESIAN_POINT ( 'NONE' , ( -3.075733 , 0.049881 , -0.100000 ) ) ;
#244 = VERTEX ( 'NONE' , #245 ) ;
#245 = CARTESIAN_POINT ( 'NONE' , ( -2.850712 , 0.039123 , -0.100000 ) ) ;
#246 = LINE ( 'NONE' , #247 , #248 ) ;
#247 = CARTESIAN_POINT ( 'NONE' , ( -3.075733 , 0.049881 , -0.100000 ) ) ;
#248 = VECTOR ( 'NONE' , #249 , 0.2252781083976028 ) ;
#249 = DIRECTION ( 'NONE' , ( 0.998859 , -0.047756 , -0.000000 ) ) ;
#250 = ORIENTED_EDGE ( 'NONE' , * , * , 251 , .T. ) ; 
#251 = EDGE_CURVE ( 'NONE' , #252 , #254 , #256 , .T. ) ;
#252 = VERTEX ( 'NONE' , #253 ) ;
#253 = CARTESIAN_POINT ( 'NONE' , ( -2.850712 , 0.039123 , -0.100000 ) ) ;
#254 = VERTEX ( 'NONE' , #255 ) ;
#255 = CARTESIAN_POINT ( 'NONE' , ( -2.850713 , -0.039123 , -0.100000 ) ) ;
#256 = LINE ( 'NONE' , #257 , #258 ) ;
#257 = CARTESIAN_POINT ( 'NONE' , ( -2.850712 , 0.039123 , -0.100000 ) ) ;
#258 = VECTOR ( 'NONE' , #259 , 0.07824649394376136 ) ;
#259 = DIRECTION ( 'NONE' , ( -0.000010 , -1.000000 , 0.000000 ) ) ;
#260 = ORIENTED_EDGE ( 'NONE' , * , * , 261 , .T. ) ; 
#261 = EDGE_CURVE ( 'NONE' , #262 , #264 , #266 , .T. ) ;
#262 = VERTEX ( 'NONE' , #263 ) ;
#263 = CARTESIAN_POINT ( 'NONE' , ( -2.850713 , -0.039123 , -0.100000 ) ) ;
#264 = VERTEX ( 'NONE' , #265 ) ;
#265 = CARTESIAN_POINT ( 'NONE' , ( -3.075733 , -0.049881 , -0.100000 ) ) ;
#266 = LINE ( 'NONE' , #267 , #268 ) ;
#267 = CARTESIAN_POINT ( 'NONE' , ( -2.850713 , -0.039123 , -0.100000 ) ) ;
#268 = VECTOR ( 'NONE' , #269 , 0.22527736125091588 ) ;
#269 = DIRECTION ( 'NONE' , ( -0.998859 , -0.047753 , -0.000000 ) ) ;
#270 = ORIENTED_EDGE ( 'NONE' , * , * , 271 , .T. ) ; 
#271 = EDGE_CURVE ( 'NONE' , #272 , #274 , #276 , .T. ) ;
#272 = VERTEX ( 'NONE' , #273 ) ;
#273 = CARTESIAN_POINT ( 'NONE' , ( -3.075733 , -0.049881 , -0.100000 ) ) ;
#274 = VERTEX ( 'NONE' , #275 ) ;
#275 = CARTESIAN_POINT ( 'NONE' , ( -3.301004 , -0.041113 , -0.100000 ) ) ;
#276 = LINE ( 'NONE' , #277 , #278 ) ;
#277 = CARTESIAN_POINT ( 'NONE' , ( -3.075733 , -0.049881 , -0.100000 ) ) ;
#278 = VECTOR ( 'NONE' , #279 , 0.22544172256288283 ) ;
#279 = DIRECTION ( 'NONE' , ( -0.999243 , 0.038895 , 0.000000 ) ) ;
#280 = ORIENTED_EDGE ( 'NONE' , * , * , 281 , .T. ) ; 
#281 = EDGE_CURVE ( 'NONE' , #282 , #284 , #286 , .T. ) ;
#282 = VERTEX ( 'NONE' , #283 ) ;
#283 = CARTESIAN_POINT ( 'NONE' , ( -3.301004 , -0.041113 , -0.100000 ) ) ;
#284 = VERTEX ( 'NONE' , #285 ) ;
#285 = CARTESIAN_POINT ( 'NONE' , ( -3.525788 , -0.023681 , -0.100000 ) ) ;
#286 = LINE ( 'NONE' , #287 , #288 ) ;
#287 = CARTESIAN_POINT ( 'NONE' , ( -3.301004 , -0.041113 , -0.100000 ) ) ;
#288 = VECTOR ( 'NONE' , #289 , 0.22545905822782863 ) ;
#289 = DIRECTION ( 'NONE' , ( -0.997007 , 0.077315 , 0.000000 ) ) ;
#290 = ORIENTED_EDGE ( 'NONE' , * , * , 291 , .T. ) ; 
#291 = EDGE_CURVE ( 'NONE' , #292 , #294 , #296 , .T. ) ;
#292 = VERTEX ( 'NONE' , #293 ) ;
#293 = CARTESIAN_POINT ( 'NONE' , ( -3.525788 , -0.023681 , -0.100000 ) ) ;
#294 = VERTEX ( 'NONE' , #295 ) ;
#295 = CARTESIAN_POINT ( 'NONE' , ( -3.750000 , -0.000000 , -0.100000 ) ) ;
#296 = LINE ( 'NONE' , #297 , #298 ) ;
#297 = CARTESIAN_POINT ( 'NONE' , ( -3.525788 , -0.023681 , -0.100000 ) ) ;
#298 = VECTOR ( 'NONE' , #299 , 0.22545886333367593 ) ;
#299 = DIRECTION ( 'NONE' , ( -0.994469 , 0.105034 , 0.000000 ) ) ;
#300 = ORIENTED_EDGE ( 'NONE' , * , * , 301 , .T. ) ; 
#301 = EDGE_CURVE ( 'NONE' , #302 , #304 , #306 , .T. ) ;
#302 = VERTEX ( 'NONE' , #303 ) ;
#303 = CARTESIAN_POINT ( 'NONE' , ( -3.750000 , -0.000000 , -0.100000 ) ) ;
#304 = VERTEX ( 'NONE' , #305 ) ;
#305 = CARTESIAN_POINT ( 'NONE' , ( -3.750000 , 0.000000 , -0.100000 ) ) ;
#306 = LINE ( 'NONE' , #307 , #308 ) ;
#307 = CARTESIAN_POINT ( 'NONE' , ( -3.750000 , -0.000000 , -0.100000 ) ) ;
#308 = VECTOR ( 'NONE' , #309 , 8.294702139732885e-07 ) ;
#309 = DIRECTION ( 'NONE' , ( -0.007167 , 0.999974 , 0.000000 ) ) ;
#209 = EDGE_LOOP ( 'NONE' , ( #210 , #220 , #230 , #240 , #250 , #260 , #270 , #280 , #290 , #300 ) ) ;
#310 = ADVANCED_FACE ( 'NONE' , ( #311) , #312 , .T. ) ;
#311 = FACE_OUTER_BOUND ( 'NONE' , #317 , .T. ) ;
#312 = PLANE ( 'NONE' , #313 ) ;
#313 = AXIS2_PLACEMENT_3D ( 'NONE' , #314 , #315 , #316 ) ;
#314 = CARTESIAN_POINT ( 'NONE' , ( -3.000000 , 0.000000 , -2.100000 ) ) ;
#315 = DIRECTION ( 'NONE' , ( -1.000000 , 0.000000 , 0.000000 ) ) ;
#316 = DIRECTION ( 'NONE' , ( -0.000000 , -1.000000 , -0.000000 ) ) ;
#318 = ORIENTED_EDGE ( 'NONE' , * , * , 319 , .T. ) ; 
#319 = EDGE_CURVE ( 'NONE' , #320 , #322 , #324 , .T. ) ;
#320 = VERTEX ( 'NONE' , #321 ) ;
#321 = CARTESIAN_POINT ( 'NONE' , ( -3.750000 , 0.000000 , -2.100000 ) ) ;
#322 = VERTEX ( 'NONE' , #323 ) ;
#323 = CARTESIAN_POINT ( 'NONE' , ( -3.525788 , 0.023681 , -2.100000 ) ) ;
#324 = LINE ( 'NONE' , #325 , #326 ) ;
#325 = CARTESIAN_POINT ( 'NONE' , ( -3.750000 , 0.000000 , -2.100000 ) ) ;
#326 = VECTOR ( 'NONE' , #327 , 0.2254588471561799 ) ;
#327 = DIRECTION ( 'NONE' , ( 0.994469 , 0.105034 , 0.000000 ) ) ;
#328 = ORIENTED_EDGE ( 'NONE' , * , * , 329 , .T. ) ; 
#329 = EDGE_CURVE ( 'NONE' , #330 , #332 , #334 , .T. ) ;
#330 = VERTEX ( 'NONE' , #331 ) ;
#331 = CARTESIAN_POINT ( 'NONE' , ( -3.525788 , 0.023681 , -2.100000 ) ) ;
#332 = VERTEX ( 'NONE' , #333 ) ;
#333 = CARTESIAN_POINT ( 'NONE' , ( -3.301004 , 0.041113 , -2.100000 ) ) ;
#334 = LINE ( 'NONE' , #335 , #336 ) ;
#335 = CARTESIAN_POINT ( 'NONE' , ( -3.525788 , 0.023681 , -2.100000 ) ) ;
#336 = VECTOR ( 'NONE' , #337 , 0.22545914553885527 ) ;
#337 = DIRECTION ( 'NONE' , ( 0.997007 , 0.077315 , 0.000000 ) ) ;
#338 = ORIENTED_EDGE ( 'NONE' , * , * , 339 , .T. ) ; 
#339 = EDGE_CURVE ( 'NONE' , #340 , #342 , #344 , .T. ) ;
#340 = VERTEX ( 'NONE' , #341 ) ;
#341 = CARTESIAN_POINT ( 'NONE' , ( -3.301004 , 0.041113 , -2.100000 ) ) ;
#342 = VERTEX ( 'NONE' , #343 ) ;
#343 = CARTESIAN_POINT ( 'NONE' , ( -3.075733 , 0.049881 , -2.100000 ) ) ;
#344 = LINE ( 'NONE' , #345 , #346 ) ;
#345 = CARTESIAN_POINT ( 'NONE' , ( -3.301004 , 0.041113 , -2.100000 ) ) ;
#346 = VECTOR ( 'NONE' , #347 , 0.22544175959974602 ) ;
#347 = DIRECTION ( 'NONE' , ( 0.999243 , 0.038895 , 0.000000 ) ) ;
#348 = ORIENTED_EDGE ( 'NONE' , * , * , 349 , .T. ) ; 
#349 = EDGE_CURVE ( 'NONE' , #350 , #352 , #354 , .T. ) ;
#350 = VERTEX ( 'NONE' , #351 ) ;
#351 = CARTESIAN_POINT ( 'NONE' , ( -3.075733 , 0.049881 , -2.100000 ) ) ;
#352 = VERTEX ( 'NONE' , #353 ) ;
#353 = CARTESIAN_POINT ( 'NONE' , ( -2.850712 , 0.039123 , -2.100000 ) ) ;
#354 = LINE ( 'NONE' , #355 , #356 ) ;
#355 = CARTESIAN_POINT ( 'NONE' , ( -3.075733 , 0.049881 , -2.100000 ) ) ;
#356 = VECTOR ( 'NONE' , #357 , 0.2252781083976028 ) ;
#357 = DIRECTION ( 'NONE' , ( 0.998859 , -0.047756 , 0.000000 ) ) ;
#358 = ORIENTED_EDGE ( 'NONE' , * , * , 359 , .T. ) ; 
#359 = EDGE_CURVE ( 'NONE' , #360 , #362 , #364 , .T. ) ;
#360 = VERTEX ( 'NONE' , #361 ) ;
#361 = CARTESIAN_POINT ( 'NONE' , ( -2.850712 , 0.039123 , -2.100000 ) ) ;
#362 = VERTEX ( 'NONE' , #363 ) ;
#363 = CARTESIAN_POINT ( 'NONE' , ( -2.850713 , -0.039123 , -2.100000 ) ) ;
#364 = LINE ( 'NONE' , #365 , #366 ) ;
#365 = CARTESIAN_POINT ( 'NONE' , ( -2.850712 , 0.039123 , -2.100000 ) ) ;
#366 = VECTOR ( 'NONE' , #367 , 0.07824649394376136 ) ;
#367 = DIRECTION ( 'NONE' , ( -0.000010 , -1.000000 , 0.000000 ) ) ;
#368 = ORIENTED_EDGE ( 'NONE' , * , * , 369 , .T. ) ; 
#369 = EDGE_CURVE ( 'NONE' , #370 , #372 , #374 , .T. ) ;
#370 = VERTEX ( 'NONE' , #371 ) ;
#371 = CARTESIAN_POINT ( 'NONE' , ( -2.850713 , -0.039123 , -2.100000 ) ) ;
#372 = VERTEX ( 'NONE' , #373 ) ;
#373 = CARTESIAN_POINT ( 'NONE' , ( -3.075733 , -0.049881 , -2.100000 ) ) ;
#374 = LINE ( 'NONE' , #375 , #376 ) ;
#375 = CARTESIAN_POINT ( 'NONE' , ( -2.850713 , -0.039123 , -2.100000 ) ) ;
#376 = VECTOR ( 'NONE' , #377 , 0.22527736125091588 ) ;
#377 = DIRECTION ( 'NONE' , ( -0.998859 , -0.047753 , 0.000000 ) ) ;
#378 = ORIENTED_EDGE ( 'NONE' , * , * , 379 , .T. ) ; 
#379 = EDGE_CURVE ( 'NONE' , #380 , #382 , #384 , .T. ) ;
#380 = VERTEX ( 'NONE' , #381 ) ;
#381 = CARTESIAN_POINT ( 'NONE' , ( -3.075733 , -0.049881 , -2.100000 ) ) ;
#382 = VERTEX ( 'NONE' , #383 ) ;
#383 = CARTESIAN_POINT ( 'NONE' , ( -3.301004 , -0.041113 , -2.100000 ) ) ;
#384 = LINE ( 'NONE' , #385 , #386 ) ;
#385 = CARTESIAN_POINT ( 'NONE' , ( -3.075733 , -0.049881 , -2.100000 ) ) ;
#386 = VECTOR ( 'NONE' , #387 , 0.22544172256288283 ) ;
#387 = DIRECTION ( 'NONE' , ( -0.999243 , 0.038895 , 0.000000 ) ) ;
#388 = ORIENTED_EDGE ( 'NONE' , * , * , 389 , .T. ) ; 
#389 = EDGE_CURVE ( 'NONE' , #390 , #392 , #394 , .T. ) ;
#390 = VERTEX ( 'NONE' , #391 ) ;
#391 = CARTESIAN_POINT ( 'NONE' , ( -3.301004 , -0.041113 , -2.100000 ) ) ;
#392 = VERTEX ( 'NONE' , #393 ) ;
#393 = CARTESIAN_POINT ( 'NONE' , ( -3.525788 , -0.023681 , -2.100000 ) ) ;
#394 = LINE ( 'NONE' , #395 , #396 ) ;
#395 = CARTESIAN_POINT ( 'NONE' , ( -3.301004 , -0.041113 , -2.100000 ) ) ;
#396 = VECTOR ( 'NONE' , #397 , 0.22545905822782863 ) ;
#397 = DIRECTION ( 'NONE' , ( -0.997007 , 0.077315 , 0.000000 ) ) ;
#398 = ORIENTED_EDGE ( 'NONE' , * , * , 399 , .T. ) ; 
#399 = EDGE_CURVE ( 'NONE' , #400 , #402 , #404 , .T. ) ;
#400 = VERTEX ( 'NONE' , #401 ) ;
#401 = CARTESIAN_POINT ( 'NONE' , ( -3.525788 , -0.023681 , -2.100000 ) ) ;
#402 = VERTEX ( 'NONE' , #403 ) ;
#403 = CARTESIAN_POINT ( 'NONE' , ( -3.750000 , -0.000000 , -2.100000 ) ) ;
#404 = LINE ( 'NONE' , #405 , #406 ) ;
#405 = CARTESIAN_POINT ( 'NONE' , ( -3.525788 , -0.023681 , -2.100000 ) ) ;
#406 = VECTOR ( 'NONE' , #407 , 0.22545886333367593 ) ;
#407 = DIRECTION ( 'NONE' , ( -0.994469 , 0.105034 , 0.000000 ) ) ;
#408 = ORIENTED_EDGE ( 'NONE' , * , * , 409 , .T. ) ; 
#409 = EDGE_CURVE ( 'NONE' , #410 , #412 , #414 , .T. ) ;
#410 = VERTEX ( 'NONE' , #411 ) ;
#411 = CARTESIAN_POINT ( 'NONE' , ( -3.750000 , -0.000000 , -2.100000 ) ) ;
#412 = VERTEX ( 'NONE' , #413 ) ;
#413 = CARTESIAN_POINT ( 'NONE' , ( -3.750000 , 0.000000 , -2.100000 ) ) ;
#414 = LINE ( 'NONE' , #415 , #416 ) ;
#415 = CARTESIAN_POINT ( 'NONE' , ( -3.750000 , -0.000000 , -2.100000 ) ) ;
#416 = VECTOR ( 'NONE' , #417 , 8.294702139732885e-07 ) ;
#417 = DIRECTION ( 'NONE' , ( -0.007167 , 0.999974 , 0.000000 ) ) ;
#317 = EDGE_LOOP ( 'NONE' , ( #318 , #328 , #338 , #348 , #358 , #368 , #378 , #388 , #398 , #408 ) ) ;
#419 = CARTESIAN_POINT ( 'NONE' , ( -3.750000 , 0.000000 , -0.100000 ) ) ;
#420 = CARTESIAN_POINT ( 'NONE' , ( -3.525788 , 0.023681 , -0.100000 ) ) ;
#421 = CARTESIAN_POINT ( 'NONE' , ( -3.301004 , 0.041113 , -0.100000 ) ) ;
#422 = CARTESIAN_POINT ( 'NONE' , ( -3.075733 , 0.049881 , -0.100000 ) ) ;
#423 = CARTESIAN_POINT ( 'NONE' , ( -2.850712 , 0.039123 , -0.100000 ) ) ;
#424 = CARTESIAN_POINT ( 'NONE' , ( -2.850713 , -0.039123 , -0.100000 ) ) ;
#425 = CARTESIAN_POINT ( 'NONE' , ( -3.075733 , -0.049881 , -0.100000 ) ) ;
#426 = CARTESIAN_POINT ( 'NONE' , ( -3.301004 , -0.041113 , -0.100000 ) ) ;
#427 = CARTESIAN_POINT ( 'NONE' , ( -3.525788 , -0.023681 , -0.100000 ) ) ;
#428 = CARTESIAN_POINT ( 'NONE' , ( -3.750000 , -0.000000 , -0.100000 ) ) ;
#429 = CARTESIAN_POINT ( 'NONE' , ( -3.750000 , 0.000000 , -2.100000 ) ) ;
#430 = CARTESIAN_POINT ( 'NONE' , ( -3.525788 , 0.023681 , -2.100000 ) ) ;
#431 = CARTESIAN_POINT ( 'NONE' , ( -3.301004 , 0.041113 , -2.100000 ) ) ;
#432 = CARTESIAN_POINT ( 'NONE' , ( -3.075733 , 0.049881 , -2.100000 ) ) ;
#433 = CARTESIAN_POINT ( 'NONE' , ( -2.850712 , 0.039123 , -2.100000 ) ) ;
#434 = CARTESIAN_POINT ( 'NONE' , ( -2.850713 , -0.039123 , -2.100000 ) ) ;
#435 = CARTESIAN_POINT ( 'NONE' , ( -3.075733 , -0.049881 , -2.100000 ) ) ;
#436 = CARTESIAN_POINT ( 'NONE' , ( -3.301004 , -0.041113 , -2.100000 ) ) ;
#437 = CARTESIAN_POINT ( 'NONE' , ( -3.525788 , -0.023681 , -2.100000 ) ) ;
#438 = CARTESIAN_POINT ( 'NONE' , ( -3.750000 , -0.000000 , -2.100000 ) ) ;
#418 = B_SPLINE_SURFACE_WITH_KNOTS ( 'NONE' , 3 , 3 , ( ( #419 , #420 , #421 , #422 , #423 , #424 , #425 , #426 , #427 , #428 ), ( #429 , #430 , #431 , #432 , #433 , #434 , #435 , #436 , #437 , #438 ) ) , .UNSPECIFIED. , .F. , .F. , .F. , .UNSPECIFIED. , .UNSPECIFIED. , ( 0.0, 1.0 ) , ( 0.0, 0.1111111111111111, 0.2222222222222222, 0.3333333333333333, 0.4444444444444444, 0.5555555555555556, 0.6666666666666666, 0.7777777777777777, 0.8888888888888888, 1.0 ) , .UNSPECIFIED.) ;
#101 = ADVANCED_BREP_SHAPE_REPRESENTATION ( 'NONE' , ( #200 ) , #103 ) ;
#103 = GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) ;
ENDSEC;
END-ISO-10303-21;

person byl    schedule 11.10.2019    source источник
comment
Пожалуйста, не полагайтесь на инструменты с открытым исходным кодом для отладки этого. Вместо этого я бы проверил файлы * .err в программе импорта SolidWorks.   -  person abenci    schedule 14.10.2019
comment
Я просмотрел начало вашего файла и обнаружил несколько ошибок. FILE_NAME имеет более двух атрибутов. Вам также не хватает FILE_SCHEMA в шапке. Возможно, проблема не в этих ошибках. Первым атрибутом SHAPE_DEFINITION_REPRESENTATION должна быть строка. APPLICATION_CONTEXT написано с ошибкой в ​​#23. Может быть еще ошибок ...   -  person remi    schedule 14.10.2019
comment
Другая синтаксическая ошибка; согласно документации Части 21 STEP, действительное число с показателем должно быть с заглавной буквы E (123.45E9, а не 123.45e9). (В некоторых из ваших экземпляров также есть много других ошибок ...)   -  person remi    schedule 14.10.2019


Ответы (1)


FreeCAD использует библиотеку Open CASCADE Technology (OCCT) для чтения файла STEP. Если вы откроете свой файл STEP в CAD Assistant (бесплатное средство трехмерного просмотра на основе OCCT), вы увидите следующий вывод в окне сообщений, созданном программой чтения OCCT:

20:29 Errors on Reading Header Entity N0.6:HeaderSection_FileSchema
20:29 Parameter #1 (schema_identifiers) is not a LIST
      Error occurred transferring STEP file!
      C:/test.stp
20:29 Count STEP Reader Failures for 'test.stp'
       -----    -----------
           1    F: Parameter #1 (schema_identifiers) is not a LIST
           1    F:SHAPE_DEFINITION_REPRESENTATION: Count of Parameters is not 2 for shape_definition_representation
           1    F:CLOSED_SHELL: Parameter n0.3 (face) : Entity has illegal type
          20    F:ORIENTED_EDGE: Parameter n0.4 (edge_element) not an Entity
          40    F:VERTEX: Count of Parameters is not 1 for vertex
           1    F:B_SPLINE_SURFACE_WITH_KNOTS: Parameter n0.9 (u_multiplicities) not a LIST
           1    F:B_SPLINE_SURFACE_WITH_KNOTS: Parameter n0.10 (v_multiplicities) not a LIST
           1    F:GEOMETRIC_REPRESENTATION_CONTEXT: Count of Parameters is not 3 for geometric_representation_context
          Nb Total:66  for 8 items

Это сообщение может помочь выяснить, что не так в файле STEP или, по крайней мере, что не нравится читателю OCCT в этом файле.

Однако возникает вопрос, почему писать STEP Writer с нуля, а не использовать какую-то существующую библиотеку? Я полагаю, что экспортируемая геометрическая структура довольно проста, чтобы стоить усилий автора STEP.

person gkv311    schedule 13.02.2020
comment
Вы правы в использовании существующей библиотеки. Я решил перестать заниматься этим сам и вместо этого использую модули FreeCAD Python. Это может быть полезно, если я решу повторить свой первоначальный подход. - person byl; 13.02.2020