code: def gen3d_conformer(self):
          
          gen3d = ob.OBOp.FindType("Gen3D")
          gen3d.Do(self._obmol)
docs: A combined method to first generate 3D structures from 0D or 2D
          structures and then find the minimum energy conformer:
          1. Use OBBuilder to create a 3D structure using rules and ring templates
          2. Do 250 steps of a steepest descent geometry optimization with the
             MMFF94 forcefield
          3. Do 200 iterations of a Weighted Rotor conformational search
             (optimizing each conformer with 25 steps of a steepest descent)
          4. Do 250 steps of a conjugate gradient geometry optimization.
  
          Warning from openbabel docs:
          For many applications where 100s if not 1000s of molecules need to be
          processed, gen3d is rather SLOW. Sometimes this function can cause a
          segmentation fault.
          A future version of Open Babel will provide options for slow/medium/fast
          3D structure generation which will involve different compromises
          between speed and finding the global energy minimum.