CAD Modeling

Working with CAD models

52 Topics 178 Posts
  • 0 Votes
    4 Posts
    351 Views

    @Jexyll_S Oh perhaps, thanks!

  • Export parts of ViP models as IGES

    3
    0 Votes
    3 Posts
    977 Views

    Hi Micol and Frodi,

    One free alternative is to use the shell provided with the Fitness Tracker tutorial. This is the skin shell of the model Billie. It is not license protected and can be exported to any one of the available export formats.

    Best,
    Habib

  • Sweep a cross-section geometry along a spline

    2
    0 Votes
    2 Posts
    457 Views

    Hi, when sweeping an object along a path, the normal of the cross-section should in principle follow the path. This, however, does not prevent having self-intersections in locations where the curvature of the path is too large compared to the size of the cross-section.

    The best way to experiment (different geometries, different paths, etc...) is to use the Python API:

    import s4l_v1.model as model from s4l_v1.model import Vec3 import XCoreModeling spline1 = model.CreateSpline([Vec3(0,0,0), Vec3(50,0,0), Vec3(50,50,50)]) section = model.CreateCircle(Vec3(0,0,0), Vec3(1,0,0), 10) region1 = XCoreModeling.SweepAlongPath(section, spline1, make_solid=True)
  • Thicken the helix wire

    4
    0 Votes
    4 Posts
    301 Views

    @PeterStijnman Thank you so much for your solution,I will try it.

  • Helix problem

    5
    0 Votes
    5 Posts
    301 Views

    @LCL You are welcome! Enjoy the Helix tool and do not hesitate to post some screenshots on this forum if you create some nice looking helixes 🙂

  • Voxelling problem -posable model

    6
    2 Votes
    6 Posts
    458 Views

    Those look llike ghost voxels (i.e. voxels produced by a bug in the voxeler). Look at the regularity of those voxels. If this is reproducible, can you please provide a project file with that model in it and report a bug case?

  • Boolean operation with Anatomical models

    5
    1 Votes
    5 Posts
    588 Views

    just to comment on doing booleans with licensed models. this is completely possible, as Suchit says. Sometimes I think users get confused by the lock symbols shown in the model. These locks are not related to the license protection at all, they are there because the model is posable and modifying individual parts would break the posability.

    For you I would suggest to download the shell (surface enclosing the complete model) of DUKE and do the boolean operation with the shell only. For Duke you could use: https://itis.swiss/virtual-population/virtual-population/vip2/duke/duke-whole-body-shell-v2-0/

    Since the shell is not license protected you can modify it, save it as STL or whatever format and load it other software tools if needed (e.g. MATLAB). To make it a solid the easiest method is to import the STL file and check the box "Import as Solid".

    We are planning to restructure the downloads soon, and I want to add the shell surface by default to the zip file containing the full V3.x model, since it is often useful, e.g. to create uniform thickness offset surfaces (skin layers), and other operations.

  • 0 Votes
    2 Posts
    567 Views

    The list is actually quite a bit longer.

    For surface meshes is includes:

    VTK PLY OBJ OFF DAT (iSEG/ViP surface format)

    For image data it includes:

    PRJ (iSEG project files) NIFTY (NII, NII.GZ) DICOM MHA/MHD NRRD

    For unstructured meshes it includes:

    Exodus II VTU NASTRAN (partial support)
  • Importing polylines from text file

    Unsolved
    2
    0 Votes
    2 Posts
    316 Views

    You would have to define the polylines in a supported file format, e.g. VTK.

    To create such a file from Python, you could do something like this:

    import vtk # define points x1,y1,z1, etc. # add the actual points points = vtk.vtkPoints() points.InsertNextPoint(x1,y1,z1) points.InsertNextPoint(x2,y2,z2) points.InsertNextPoint(x3,y3,z3) # define the lines lines = vtk.vtkCellArray() lines.InsertNextCell(3) # next line is composed of 3 vertices lines.InsertCellPoint(0) # vertex 1 lines.InsertCellPoint(1) # vertex 2 lines.InsertCellPoint(2) # vertex 3 # assemble as surface mesh mesh = vtk.vtkPolyData() mesh.SetPoints(points) mesh.SetLines(lines) # write to file, supported by Sim4Life, Paraview, etc. writer = vtk.vtkDataSetWriter() writer.SetInputData(mesh) writer.SetFileName(r"E:\temp\Foo.vtk") writer.Write()
  • 0 Votes
    1 Posts
    437 Views
    No one has replied
  • How can I export a mesh model as IGES

    4
    3 Votes
    4 Posts
    426 Views

    @pcrespo By the way. Converting to Solid (using either method) only works well when
    a) the mesh resolution is not too high (else it will take forever and use huge amounts of memory)
    b) the surface mesh is manifold and has no self-intersections. these defects can be identified and often fixed using the Mesh Doctor ("Automatically Fix").

    0_1525763901226_d38bb2c1-efd5-4038-b84a-605be284dda1-image.png

    0_1525763910904_3d828313-84bb-4410-9be9-d584b6318823-image.png

  • Nearest point to a spline

    Solved
    2
    0 Votes
    2 Posts
    292 Views

    got it:

    wire = GetWires(spline)[0] curve = wire.GetGeometry(transform_to_model_space=True) law = curve.GetLaw() t0 = curve.MinDistParameter(point_start)