public void ImportFromKinect() { var doc = Autodesk.AutoCAD.ApplicationServices. Application.DocumentManager.MdiActiveDocument; var ed = doc.Editor; var pdo = new PromptDoubleOptions("\nEnter profile radius"); pdo.AllowZero = false; pdo.AllowNegative = false; pdo.AllowNone = false; pdo.DefaultValue = 0.05; pdo.UseDefaultValue = true; var pdr = ed.GetDouble(pdo); if (pdr.Status != PromptStatus.OK) { return; } using (var tr = doc.TransactionManager.StartTransaction()) { var kj = new KinectSolidsJig(doc, tr, pdr.Value); kj.InitializeSpeech(); if (!kj.StartSensor()) { ed.WriteMessage( "\nUnable to start Kinect sensor - " + "are you sure it's plugged in?" ); return; } var pr = ed.Drag(kj); if (pr.Status != PromptStatus.OK && !kj.Finished) { kj.StopSensor(); kj.Cleanup(); return; } // Generate a final point cloud with color before stopping // the sensor kj.UpdatePointCloud(); kj.StopSensor(); kj.AddSolidOrPath(); tr.Commit(); kj.WriteAndImportPointCloud(doc, kj.Vectors); } }
public void ImportFromKinect() { Document doc = Autodesk.AutoCAD.ApplicationServices. Application.DocumentManager.MdiActiveDocument; Editor ed = doc.Editor; PromptDoubleOptions pdo = new PromptDoubleOptions("\nEnter profile radius"); pdo.AllowZero = false; pdo.AllowNegative = false; pdo.AllowNone = false; pdo.DefaultValue = 0.05; pdo.UseDefaultValue = true; PromptDoubleResult pdr = ed.GetDouble(pdo); if (pdr.Status != PromptStatus.OK) return; Transaction tr = doc.TransactionManager.StartTransaction(); KinectSolidsJig kj = new KinectSolidsJig(doc, tr, pdr.Value); kj.InitializeSpeech(); if (!kj.StartSensor()) { ed.WriteMessage( "\nUnable to start Kinect sensor - " + "are you sure it's plugged in?" ); tr.Dispose(); return; } PromptResult pr = ed.Drag(kj); if (pr.Status != PromptStatus.OK && !kj.Finished) { kj.StopSensor(); kj.Cleanup(); tr.Dispose(); return; } // Generate a final point cloud with color before stopping // the sensor kj.UpdatePointCloud(); kj.StopSensor(); kj.AddSolidOrPath(); tr.Commit(); // Manually dispose to avoid scoping issues with // other variables tr.Dispose(); kj.WriteAndImportPointCloud(doc, kj.Vectors); }