3D Design

3D Design

Topics related to Ansys Discovery and Ansys SpaceClaim.

SpaceClaim Scripting Get Edge Type

    • Jake Garrison



      I have two questions:

      1. How can I tell the difference in SpaceClaim scripting between a circle, arc or stright line? 


      2. Given a face on a body, how does SpaceClaim decide which edge on the body is zero indexed? 



    • mjmiddle
      Ansys Employee

      Given that "curve" variable below is DesignCurve or DesignEdge type such as retrieved by curve = GetRootPart().Bodies[0].Edges[0]:

      curveType = curve.Shape.Geometry.GetType()
      if curveType == Circle:
          # Arc
      elif curveType == Line:
          # Line
      elif curveType == NurbsCurve:
          # Spline
      elif curveType == PointCurve:
          # Point

      Sorry, but there is no logic I can report on how the index designation is given for curves/edges.

      In scripting, you need to decide your own logic on how you will determine how to retrieve an intended curve/edge. If your script operates on a pre-existing geometry you can place curves/edges into named selection groups first and then have the script get the entities in the named selection for the names of your choice. If your script creates everything, you can use a sortof bottom-up approach (create curves then surfaces from curves, then bodies from surfaces) to creating geometry so you still have the curves (saved to variable) used in creating faces/bodies. And get the returned entities from creation functions. Or maybe you can get certain curves/edges by a simple logic of max/min XYZ for its endpoints. Or maybe you can get certain curves/edges by their connections to other known curves/edges. You need to get a little creative with your logic on how to retrieve intended geometry when scripting.

Viewing 1 reply thread
  • You must be logged in to reply to this topic.