| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | #include <Base/PlacementPy.h> |
| | #include <Base/PyWrapParseTupleAndKeywords.h> |
| |
|
| | #include <Mod/Mesh/App/MeshPy.h> |
| | #include <Mod/CAM/App/CommandPy.h> |
| | #include <Mod/Part/App/TopoShapePy.h> |
| |
|
| | |
| | #include "CAMSimPy.h" |
| | #include "CAMSimPy.cpp" |
| |
|
| |
|
| | using namespace CAMSimulator; |
| |
|
| | |
| | std::string CAMSimPy::representation() const |
| | { |
| | return std::string("<CAMSim object>"); |
| | } |
| |
|
| | PyObject* CAMSimPy::PyMake(struct _typeobject*, PyObject*, PyObject*) |
| | { |
| | |
| | return new CAMSimPy(new CAMSim); |
| | } |
| |
|
| | |
| | int CAMSimPy::PyInit(PyObject* , PyObject* ) |
| | { |
| | return 0; |
| | } |
| |
|
| |
|
| | PyObject* CAMSimPy::ResetSimulation() |
| | { |
| | CAMSim* sim = getCAMSimPtr(); |
| | sim->resetSimulation(); |
| | Py_IncRef(Py_None); |
| | return Py_None; |
| | } |
| |
|
| | PyObject* CAMSimPy::BeginSimulation(PyObject* args, PyObject* kwds) |
| | { |
| | static const std::array<const char*, 3> kwlist {"stock", "resolution", nullptr}; |
| | PyObject* pObjStock; |
| | float resolution; |
| | if (!Base::Wrapped_ParseTupleAndKeywords( |
| | args, |
| | kwds, |
| | "O!f", |
| | kwlist, |
| | &(Part::TopoShapePy::Type), |
| | &pObjStock, |
| | &resolution |
| | )) { |
| | return nullptr; |
| | } |
| | CAMSim* sim = getCAMSimPtr(); |
| | const Part::TopoShape& stock = *static_cast<Part::TopoShapePy*>(pObjStock)->getTopoShapePtr(); |
| | sim->BeginSimulation(stock, resolution); |
| | Py_IncRef(Py_None); |
| | return Py_None; |
| | } |
| |
|
| | PyObject* CAMSimPy::AddTool(PyObject* args, PyObject* kwds) |
| | { |
| | static const std::array<const char*, 5> |
| | kwlist {"shape", "toolnumber", "diameter", "resolution", nullptr}; |
| | PyObject* pObjToolShape; |
| | int toolNumber; |
| | float resolution; |
| | float diameter; |
| | if (!Base::Wrapped_ParseTupleAndKeywords( |
| | args, |
| | kwds, |
| | "Oiff", |
| | kwlist, |
| | &pObjToolShape, |
| | &toolNumber, |
| | &diameter, |
| | &resolution |
| | )) { |
| | return nullptr; |
| | } |
| | |
| | Py_ssize_t num_floats = PyList_Size(pObjToolShape); |
| | std::vector<float> toolProfile; |
| | for (Py_ssize_t i = 0; i < num_floats; ++i) { |
| | PyObject* item = PyList_GetItem(pObjToolShape, i); |
| | toolProfile.push_back(static_cast<float>(PyFloat_AsDouble(item))); |
| | } |
| |
|
| | CAMSim* sim = getCAMSimPtr(); |
| | sim->addTool(toolProfile, toolNumber, diameter, resolution); |
| |
|
| | Py_INCREF(Py_None); |
| | return Py_None; |
| | } |
| |
|
| | PyObject* CAMSimPy::SetBaseShape(PyObject* args, PyObject* kwds) |
| | { |
| | static const std::array<const char*, 3> kwlist {"shape", "resolution", nullptr}; |
| | PyObject* pObjBaseShape; |
| | float resolution; |
| | if (!Base::Wrapped_ParseTupleAndKeywords( |
| | args, |
| | kwds, |
| | "O!f", |
| | kwlist, |
| | &(Part::TopoShapePy::Type), |
| | &pObjBaseShape, |
| | &resolution |
| | )) { |
| | return nullptr; |
| | } |
| | if (!PyArg_ParseTuple(args, "O!f", &(Part::TopoShapePy::Type), &pObjBaseShape, &resolution)) { |
| | return nullptr; |
| | } |
| | CAMSim* sim = getCAMSimPtr(); |
| | const Part::TopoShape& baseShape |
| | = static_cast<Part::TopoShapePy*>(pObjBaseShape)->getTopoShapePtr()->getShape(); |
| | sim->SetBaseShape(baseShape, resolution); |
| |
|
| | Py_IncRef(Py_None); |
| | return Py_None; |
| | } |
| |
|
| | PyObject* CAMSimPy::AddCommand(PyObject* args) |
| | { |
| | PyObject* pObjCmd; |
| | if (!PyArg_ParseTuple(args, "O!", &(Path::CommandPy::Type), &pObjCmd)) { |
| | return nullptr; |
| | } |
| | CAMSim* sim = getCAMSimPtr(); |
| | Path::Command* cmd = static_cast<Path::CommandPy*>(pObjCmd)->getCommandPtr(); |
| | sim->AddCommand(cmd); |
| |
|
| | Py_INCREF(Py_None); |
| | return Py_None; |
| | } |
| |
|
| | PyObject* CAMSimPy::getCustomAttributes(const char* ) const |
| | { |
| | return nullptr; |
| | } |
| |
|
| | int CAMSimPy::setCustomAttributes(const char* , PyObject* ) |
| | { |
| | return 0; |
| | } |
| |
|