- // dump sketch based on coordinate plane
- theDumper << aBase << " = model.addSketch(" << aDocName
- << ", model.defaultPlane(\"" << aPlaneName << "\"))" << std::endl;
+ if (aPlaneName.empty()) {
+ // needs import additional module
+ theDumper.importModule("GeomAPI");
+ // dump plane parameters
+ const std::string& aSketchName = theDumper.name(aBase);
+ std::string anOriginName = aSketchName + "_origin";
+ std::string aNormalName = aSketchName + "_norm";
+ std::string aDirXName = aSketchName + "_dirx";
+ // use "\n" instead of std::endl to avoid automatic dumping sketch here
+ // and then dumplicate dumping it in the next line
+ theDumper << anOriginName << " = " << anOrigin << "\n"
+ << aNormalName << " = " << aNormal << "\n"
+ << aDirXName << " = " << aDirX << "\n";
+ // dump sketch based on arbitrary plane
+ theDumper << aBase << " = model.addSketch(" << aDocName << ", GeomAPI_Ax3("
+ << anOriginName << ", " << aDirXName << ", " << aNormalName << "))" << std::endl;
+ } else {
+ // dump sketch based on coordinate plane
+ theDumper << aBase << " = model.addSketch(" << aDocName
+ << ", model.defaultPlane(\"" << aPlaneName << "\"))" << std::endl;
+ }