Skip to content
gumyr edited this page Jan 31, 2023 · 16 revisions

build123d To Do List

Direct API layer

  • build custom Direct API layer with monkey-patched base class methods done
  • Add position and rotation properties with setters to Shape done
  • Hide all legacy Location changing methods they are too useful and will remain
  • add colour property to Shape done added member of Color class
  • add material property to Solid done added string
  • refactor Plane to be based on gp_Pln done

Joints done

  • add a new Joint class (?) with: done
    • Rigid. A rigid joint fixes two components to one another. ...
    • Revolute. A revolute joint has a single rotational degree of freedom, much like a hinge. ...
    • Slider. A slider joint has a single translational degree of freedom. ...
    • Cylindrical. ...
    • Pin Slot. ...
    • Planar. ...
    • Ball.
  • add a list of joints to Shape done, added to Solid and Compound

Assembly

  • try to follow the OCCT Assembly done uses Compound
  • sub-class of Compound done Compound is the assembly and other Shapes are children
  • use anytree (https://anytree.readthedocs.io/en/2.8.0/index.html) to implement the tree structure done
  • the add() method looks to see if an instance of the object is already in the Assembly and if so creates a new HShape with a link to the original object to save on storage HShape isn't appropriate see make_instance below
  • change (how?) cq-editor to accept AIS_ColoredShape or TDocStd_Document directly enable display of coloured objects
  • add a new Assembly "solver" that converts joints into constraints then calls the existing solver
  • add a new Shape.make_instance method that creates a copy of the Shape but replaces the TShape with a pointer to self's TShape. done although copy.copy() does this as a shallow copy.

Documentation

  • get live 3d documentation going
  • add new user documentation
  • add cheatsheet done

Misc Features

  • add logging
  • add try blocks to intercept OpenCascade exceptions
  • add BuildSurface
  • verify that extrude linear works with non-planar faces True
  • add a function/operator that creates "hull" points - i.e. points of interest when two or more objects are hulled together (2D only). These points are able to be used for line building
  • add an extrude to face function that extrudes one face at a time (there seems to be a bug in OCCT with multiple simultaneous faces) - project then loft? Done
Clone this wiki locally