DataSmith can't import Solidworks assembly file

versions:
UnrealEngine 4.22.2 4.23.0
Solidworks2014 2017

create a SLDASM file with two part.

5c306e5068cf28f8070f8b433ef1f93f.png

use DataSmith import this SLDASM file.

You can see a only null object.So is it a bug?

Import SLDASM and SLDPART file.You can see SLDPART import sucessd,but SLDASM is null.And part is miss relative position info.

I remember UnrealStudio that version release in 2017 can ipmort SLDASM no problem.

Same problem on 4.26.2 :…(

Can you show your output log?
The first thing that comes to mind is that your sldprt files used in your assembly are not in a folder that is looked for by datasmith. Where are your sldprt files? are they next to your sldasm?

Having the exact same issue in UE5, I was wondering if anyone found a solution?

Thanks!

I have no issue importing solidworks assembly or part files in UE5.
Can we get more details please:

  • do you have warning or errors in your output log? Can you share them with us?
  • is you assembly file well referencing the part files: are all the files where they should be? Did you move them in different folder so that datasmith does not find the part files references by the assembly file?
  • can you share the assembly and part files with us so we try to reproduce?

Yes of course.

I have to say I have zero knowledge about CAD files (and I just started using Unreal) so I am trying to learn these as I go. This is the output log from the moment I press “Datasmith - File import”, although I don’t know how to interpret it:

LogWindows: Failed to load 'libalias_api.dll' (GetLastError=126)
LogWindows: File 'libalias_api.dll' does not exist
LogWindows: Failed to load 'libalias_api.dll' (GetLastError=126)
LogWindows: File 'libalias_api.dll' does not exist
LogWindows: Failed to load 'libalias_api.dll' (GetLastError=126)
LogWindows: File 'libalias_api.dll' does not exist
LogWindows: Failed to load 'libalias_api.dll' (GetLastError=126)
LogWindows: File 'libalias_api.dll' does not exist
LogWindows: Failed to load 'libalias_api.dll' (GetLastError=126)
LogWindows: File 'libalias_api.dll' does not exist
LogDerivedDataCache: C:/Users/user/AppData/Local/UnrealEngine/Common/DerivedDataCache: Maintenance finished in +00:00:00.656 and deleted 0 file(s) with total size 0 MiB.
LogSlate: Window 'Choose Location for importing the Datasmith content' being destroyed
LogSlate: Window 'Datasmith Import Options' being destroyed
LogCADTranslator: Display: CAD translation [C:/Users/user/Desktop/mrls-tornado-1.snapshot.4/Assem1.SLDASM].
LogCADTranslator: Display:  - Parsing Library:     TechSoft
LogCADTranslator: Display:  - Tesselation Library: TechSoft
LogCADTranslator: Display:  - Cache mode:          Enabled
LogCADTranslator: Display:  - Processing:          Parallel
LogDatasmithDispatcher: Warning: file not found: C:/Users/user/Desktop/mrls-tornado-1.snapshot.4/Ocachvane.SLDPRT
LogDatasmithDispatcher: Warning: file not found: C:/Users/user/Desktop/mrls-tornado-1.snapshot.4/Janta.SLDPRT
LogDatasmithDispatcher: Warning: file not found: C:/Users/user/Desktop/mrls-tornado-1.snapshot.4/Poluoska.SLDPRT
LogDatasmithDispatcher: Warning: file not found: C:/Users/user/Desktop/mrls-tornado-1.snapshot.4/Smerch-Guma.SLDPRT
LogDatasmithDispatcher: Warning: file not found: C:/Users/user/Desktop/mrls-tornado-1.snapshot.4/Stift 2x10.SLDPRT
LogDatasmithDispatcher: Warning: file not found: C:/Users/user/Desktop/mrls-tornado-1.snapshot.4/Raketa 9A53.SLDPRT
LogDatasmithDispatcher: Warning: file not found: C:/Users/user/Desktop/mrls-tornado-1.snapshot.4/Raketna sistema.SLDPRT
LogDatasmithDispatcher: Warning: file not found: C:/Users/user/Desktop/mrls-tornado-1.snapshot.4/Part1.SLDPRT
LogDatasmithDispatcher: Warning: file not found: C:/Users/user/Desktop/mrls-tornado-1.snapshot.4/Part2.SLDPRT
LogDatasmithDispatcher: Warning: file not found: C:/Users/user/Desktop/mrls-tornado-1.snapshot.4/Part3.SLDPRT
LogDatasmithDispatcher: Warning: file not found: C:/Users/user/Desktop/mrls-tornado-1.snapshot.4/Shasi.SLDPRT
LogDatasmithDispatcher: Display: Multi Process ended and consumed all the tasks
LogLayoutUV: FindBestPacking (Total Time: 0 us, Avg Efficiency: -nan(ind))
LogUObjectHash: Compacting FUObjectHashTables data took   0.63ms
LogDatasmithImport: Imported Assem1 in [0 min 2.857 s] [Private Bytes: 3.29 GB, Working Set 1.97 GB, Peak Working Set 2.12 GB]
LogSlate: Took 0.000834 seconds to synchronously load lazily loaded font '../../../Engine/Content/Editor/Slate/Fonts/FontAwesome.ttf' (139K)

As for the file, I downloaded it from GrabCad and inside there was only a .SLDASM file, nothing else. As I said, I am just starting to learn all these peculiar file extensions, so I don’t even know if the asset is incomplete or is missing something (the parts you are referring to?).

Would appreciate any advice or reference to things I could read so I can understand the process.

Thanks!

Hello,

Some CAD application separate parts and assembly files. Solidworks does it and usually you have an assembly file that refers to other assemblies or part files directly. So when loading an assembly file Datasmith or Solidworks will look for the parts that are referenced in the assembly. Here they are missing, hence the warning you get.
I got the same loading in solidworks directly.
image

In some 3D viewer I can visualise the model but I guess it is some lightweight version of the model that is stored in the assembly for previsualisation. In your case this model might not be the best to work on.

If you want to “play” with solidworks file, part and assemblies you could try this model instead: https://grabcad.com/library/race-car-inspired-by-me-109-wwii-german-fighter-plane-1
There are all parts and even different assemblies so you can import chassis or full car, and get a feel for the structure of CAD files in Solidworks. The scale is wrong though.

I see from the same guy you were looking at you can get some model with the step file format that you could try https://grabcad.com/library/c-400-1

In the end the best is to get CAD files from CAD designers you might have at your company.

1 Like

Thank you for this info, you 've made it all very clear to me.

These files from GrabCad that you suggested come without materials/textures right? I can import them nicely but they appear all white. Just making sure I am not doing something wrong in the process

I only tried the solidworks’ car and no texture just some colored material but nothing pretty.
That is usually the case with CAD files: those are engineering geometry not 3D game models. So you should replace materials on import.

You can look at some automotive materials here Automotive Materials in Epic Content - UE Marketplace
and for replacing material you can do it manually or automate it Visual Dataprep | Unreal Engine 4.27 Documentation

1 Like

Also most CAD format use “parametric surfaces” and not “tessellated surfaces”.
This is why the first step for CAD import is tessellation, converting those parametric surfaces that CAD softwares use to triangle meshes UE can render.
That is important to understand as you can control how many triangles you generate for a model improving its visual quality by getting finer details.

1 Like

Great, I am reading all about it right now. Thanks for pointing me in the right direction.

I see next to your name the word “Staff”.

If that means you are a member of EPIC Games, I would like to take this opportunity to thank you all for giving us UE 5. I come from a software with many limitations, and right now Unreal seems like a beast to me. A beast with almost unlimited potential. Also, the staff and the community here are all super friendly and I like it.

So thank you all!

Correct, I am part of the engine staff.
Thanks for your appreciation, we try to keep close to community.

I came across this thread, just a side note, try to save your parts or assembly from Solidworks to “Parasolid .X_T file format” then import to Unreal Engine, I found these are the best error-free conversions from UE4.22 - 5.01.
Also if you need to work on the file post UE, for example, Blender, just export .Fbx file from UE.
Its been my workflow from a Cad guy who is trying to learn Game Dev :stuck_out_tongue_winking_eye:

1 Like

I remember 4.26 and 4.27 has already fix this problem.Thanks for your reply :kissing_heart:

1 Like

Theorically the best way to get solidworks into UE are to either load the solidworks file directly in UE or use the solidworks exporter to udatasmith file and then import that in UE.
Solidworks importer is still under work but should get better as version are released.

For UE to Blender I would also recommend looking at glTF file format or USD whose UE exporters were updated more recently than the FBX one and are newer interchange formats.

2 Likes