// Beginning method for exporting the full package public void exportRobot() { //Setting up the progress bar int progressBarBound = Common.getCount(mRobot.BaseLink); progressBar.Start(0, progressBarBound, "Creating package directories"); //Creating package directories URDFPackage package = new URDFPackage(mPackageName, mSavePath); package.createDirectories(); mRobot.name = mPackageName; string windowsURDFFileName = package.WindowsRobotsDirectory + mRobot.name + ".URDF"; string windowsManifestFileName = package.WindowsPackageDirectory + "manifest.xml"; //Creating manifest file manifestWriter manifestWriter = new manifestWriter(windowsManifestFileName); manifest Manifest = new manifest(mPackageName); Manifest.writeElement(manifestWriter); //Creating RVIZ launch file Rviz rviz = new Rviz(mPackageName, mRobot.name + ".URDF"); rviz.writeFiles(package.WindowsLaunchDirectory); //Creating Gazebo launch file Gazebo gazebo = new Gazebo(this.mRobot.name, this.mPackageName, mRobot.name + ".URDF"); gazebo.writeFile(package.WindowsLaunchDirectory); //Customizing STL preferences to how I want them saveUserPreferences(); setSTLExportPreferences(); //Saving part as STL mesh AssemblyDoc assyDoc = (AssemblyDoc)ActiveSWModel; List <string> hiddenComponents = Common.findHiddenComponents(assyDoc.GetComponents(false)); ActiveSWModel.Extension.SelectAll(); ActiveSWModel.HideComponent2(); string filename = exportFiles(mRobot.BaseLink, package, 0); mRobot.BaseLink.Visual.Geometry.Mesh.filename = filename; mRobot.BaseLink.Collision.Geometry.Mesh.filename = filename; Common.showAllComponents(ActiveSWModel, hiddenComponents); //Writing URDF to file URDFWriter uWriter = new URDFWriter(windowsURDFFileName); mRobot.writeURDF(uWriter.writer); resetUserPreferences(); progressBar.End(); }
// Used only by the part exporter public void exportLink(bool zIsUp) { createBaseRefOrigin(zIsUp); MathTransform coordSysTransform = ActiveSWModel.Extension.GetCoordinateSystemTransformByName("Origin_global"); Matrix <double> GlobalTransform = ops.getTransformation(coordSysTransform); localizeLink(mRobot.BaseLink, GlobalTransform); //Creating package directories URDFPackage package = new URDFPackage(mPackageName, mSavePath); package.createDirectories(); string meshFileName = package.MeshesDirectory + mRobot.BaseLink.name + ".STL"; string windowsMeshFileName = package.WindowsMeshesDirectory + mRobot.BaseLink.name + ".STL"; string windowsURDFFileName = package.WindowsRobotsDirectory + mRobot.name + ".URDF"; string windowsManifestFileName = package.WindowsPackageDirectory + "manifest.xml"; //Creating manifest file manifestWriter manifestWriter = new manifestWriter(windowsManifestFileName); manifest Manifest = new manifest(mRobot.name); Manifest.writeElement(manifestWriter); //Customizing STL preferences to how I want them saveUserPreferences(); setSTLExportPreferences(); setLinkSpecificSTLPreferences("", mRobot.BaseLink.STLQualityFine, ActiveSWModel); int errors = 0; int warnings = 0; //Saving part as STL mesh ActiveSWModel.Extension.SaveAs(windowsMeshFileName, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, null, ref errors, ref warnings); mRobot.BaseLink.Visual.Geometry.Mesh.filename = meshFileName; mRobot.BaseLink.Collision.Geometry.Mesh.filename = meshFileName; correctSTLMesh(windowsMeshFileName); mRobot.BaseLink.Visual.Material.Texture.filename = package.TexturesDirectory + Path.GetFileName(mRobot.BaseLink.Visual.Material.Texture.wFilename); string textureSavePath = package.WindowsTexturesDirectory + Path.GetFileName(mRobot.BaseLink.Visual.Material.Texture.wFilename); if (mRobot.BaseLink.Visual.Material.Texture.wFilename != "") { System.IO.File.Copy(mRobot.BaseLink.Visual.Material.Texture.wFilename, textureSavePath, true); } //Writing URDF to file URDFWriter uWriter = new URDFWriter(windowsURDFFileName); //mRobot.addLink(mLink); mRobot.writeURDF(uWriter.writer); resetUserPreferences(); }
// Beginning method for exporting the full package public void exportRobot() { //Setting up the progress bar int progressBarBound = Common.getCount(mRobot.BaseLink); progressBar.Start(0, progressBarBound, "Creating package directories"); //Creating package directories URDFPackage package = new URDFPackage(mPackageName, mSavePath); package.createDirectories(); mRobot.name = mPackageName; string windowsURDFFileName = package.WindowsRobotsDirectory + mRobot.name + ".URDF"; string windowsManifestFileName = package.WindowsPackageDirectory + "manifest.xml"; //Creating manifest file manifestWriter manifestWriter = new manifestWriter(windowsManifestFileName); manifest Manifest = new manifest(mPackageName); Manifest.writeElement(manifestWriter); //Creating RVIZ launch file Rviz rviz = new Rviz(mPackageName, mRobot.name + ".URDF"); rviz.writeFiles(package.WindowsLaunchDirectory); //Creating Gazebo launch file Gazebo gazebo = new Gazebo(this.mRobot.name, this.mPackageName, mRobot.name + ".URDF"); gazebo.writeFile(package.WindowsLaunchDirectory); //Customizing STL preferences to how I want them saveUserPreferences(); setSTLExportPreferences(); //Saving part as STL mesh AssemblyDoc assyDoc = (AssemblyDoc)ActiveSWModel; List<string> hiddenComponents = Common.findHiddenComponents(assyDoc.GetComponents(false)); ActiveSWModel.Extension.SelectAll(); ActiveSWModel.HideComponent2(); string filename = exportFiles(mRobot.BaseLink, package, 0); mRobot.BaseLink.Visual.Geometry.Mesh.filename = filename; mRobot.BaseLink.Collision.Geometry.Mesh.filename = filename; Common.showAllComponents(ActiveSWModel, hiddenComponents); //Writing URDF to file URDFWriter uWriter = new URDFWriter(windowsURDFFileName); mRobot.writeURDF(uWriter.writer); resetUserPreferences(); progressBar.End(); }
// Used only by the part exporter public void exportLink(bool zIsUp) { createBaseRefOrigin(zIsUp); MathTransform coordSysTransform = ActiveSWModel.Extension.GetCoordinateSystemTransformByName("Origin_global"); Matrix<double> GlobalTransform = ops.getTransformation(coordSysTransform); localizeLink(mRobot.BaseLink, GlobalTransform); //Creating package directories URDFPackage package = new URDFPackage(mPackageName, mSavePath); package.createDirectories(); string meshFileName = package.MeshesDirectory + mRobot.BaseLink.name + ".STL"; string windowsMeshFileName = package.WindowsMeshesDirectory + mRobot.BaseLink.name + ".STL"; string windowsURDFFileName = package.WindowsRobotsDirectory + mRobot.name + ".URDF"; string windowsManifestFileName = package.WindowsPackageDirectory + "manifest.xml"; //Creating manifest file manifestWriter manifestWriter = new manifestWriter(windowsManifestFileName); manifest Manifest = new manifest(mRobot.name); Manifest.writeElement(manifestWriter); //Customizing STL preferences to how I want them saveUserPreferences(); setSTLExportPreferences(); setLinkSpecificSTLPreferences("", mRobot.BaseLink.STLQualityFine, ActiveSWModel); int errors = 0; int warnings = 0; //Saving part as STL mesh ActiveSWModel.Extension.SaveAs(windowsMeshFileName, (int)swSaveAsVersion_e.swSaveAsCurrentVersion, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, null, ref errors, ref warnings); mRobot.BaseLink.Visual.Geometry.Mesh.filename = meshFileName; mRobot.BaseLink.Collision.Geometry.Mesh.filename = meshFileName; correctSTLMesh(windowsMeshFileName); mRobot.BaseLink.Visual.Material.Texture.filename = package.TexturesDirectory + Path.GetFileName(mRobot.BaseLink.Visual.Material.Texture.wFilename); string textureSavePath = package.WindowsTexturesDirectory + Path.GetFileName(mRobot.BaseLink.Visual.Material.Texture.wFilename); if (mRobot.BaseLink.Visual.Material.Texture.wFilename != "") { System.IO.File.Copy(mRobot.BaseLink.Visual.Material.Texture.wFilename, textureSavePath, true); } //Writing URDF to file URDFWriter uWriter = new URDFWriter(windowsURDFFileName); //mRobot.addLink(mLink); mRobot.writeURDF(uWriter.writer); resetUserPreferences(); }