public IXObject Insert(IXDrawing drw, LocationData location, SourceData data) { using (var freeze = new ViewFreeze(drw)) { return(CalculateLocationAndInsert(drw, location, data)); } }
public void Insert(IXDrawing drw) { m_CurDrawing = drw; m_CurPreviewer = new QrCodePreviewer(m_CurDrawing, m_QrCodeManager); m_InsertQrCodePage.Show(m_CurInsertQrCodePageData); UpdatePreview(); }
private void OnSheetActivated(IXDrawing doc, IXSheet newSheet) { if (doc == m_App.Documents.Active) { InvokeTrigger(Triggers_e.ConfigurationSheetChange, doc); } }
public QrCodePreviewer(IXDrawing drw, QrCodePictureManager qrCodeMgr) { m_Drw = drw; m_QrCodeMgr = qrCodeMgr; m_View = ((ISwDrawing)m_Drw).Model.IActiveView; m_View.BufferSwapNotify += OnBufferSwapNotify; }
public void CalculateLocation(IXDrawing drawing, Dock_e dock, double size, double offsetX, double offsetY, out Point centerPt, out double scale) { var sheet = (drawing.Sheets.Active as ISwSheet).Sheet; double sheetWidth = -1; double sheetHeight = -1; sheet.GetSize(ref sheetWidth, ref sheetHeight); var sheetPrps = (double[])sheet.GetProperties2(); scale = sheetPrps[2] / sheetPrps[3]; double x; double y; double offsetXDir; double offsetYDir; switch (dock) { case Dock_e.BottomLeft: x = size / 2; y = size / 2; offsetXDir = 1; offsetYDir = 1; break; case Dock_e.TopLeft: x = size / 2; y = sheetHeight - size / 2; offsetXDir = 1; offsetYDir = -1; break; case Dock_e.TopRight: x = sheetWidth - size / 2; y = sheetHeight - size / 2; offsetXDir = -1; offsetYDir = -1; break; case Dock_e.BottomRight: x = sheetWidth - size / 2; y = size / 2; offsetXDir = -1; offsetYDir = 1; break; default: throw new NotSupportedException(); } centerPt = new Point(x + offsetX * offsetXDir, y + offsetY * offsetYDir, 0); }
public void Init(IXApplication app, IXDocument model) { m_HasChanges = false; if (model is IXDrawing) { m_Drawing = (IXDrawing)model; m_Drawing.StreamWriteAvailable += OnStreamWriteAvailable; m_QrCodesLazy = new Lazy <ObservableCollection <QrCodeInfo> >(ReadQrCodeData); } }
private IXObject CalculateLocationAndInsert(IXDrawing drw, LocationData location, SourceData data) { CalculateLocation(drw, location.Dock, location.Size, location.OffsetX, location.OffsetY, out Point centerPt, out double scale); var x = (centerPt.X - location.Size / 2) / scale; var y = (centerPt.Y - location.Size / 2) / scale; return(InsertAt(drw, data, location.Size / scale, location.Size / scale, x, y)); }
private IXObject InsertAt(IXDrawing drw, SourceData data, double width, double height, double origX, double origY) { var tempFileName = ""; try { var model = (drw as ISwDrawing).Model; var qrCodeData = m_QrGenerator.CreateQrCode(m_QrCodeProvider.GetData(drw, data), QRCodeGenerator.ECCLevel.Q); var qrCode = new QRCode(qrCodeData); var qrCodeImage = qrCode.GetGraphic(20, System.Drawing.Color.Black, System.Drawing.Color.White, false); tempFileName = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".png"); qrCodeImage.Save(tempFileName); var pict = model.SketchManager.InsertSketchPicture(tempFileName); if (pict != null) { pict.SetOrigin(origX, origY); pict.SetSize(width, height, true); //picture PMPage stays open after inserting the picture const int swCommands_PmOK = -2; (m_App as ISwApplication).Sw.RunCommand(swCommands_PmOK, ""); return(((ISwDocument)drw).CreateObjectFromDispatch <ISwObject>(pict)); } else { throw new UserException("Failed to insert picture"); } } finally { if (File.Exists(tempFileName)) { try { File.Delete(tempFileName); } catch { } } } }
public IXObject UpdateInPlace(IXObject pict, SourceData data, IXDrawing drw) { var skPict = (ISketchPicture)((ISwObject)pict).Dispatch; double width = -1; double height = -1; double x = -1; double y = -1; skPict.GetSize(ref width, ref height); skPict.GetOrigin(ref x, ref y); using (var freeze = new ViewFreeze(drw)) { DeletePicture(pict, drw); return(InsertAt(drw, data, width, height, x, y)); } }
public IXObject Reload(IXObject pict, LocationData location, SourceData data, IXDrawing drw) { using (var freeze = new ViewFreeze(drw)) { DeletePicture(pict, drw); return(CalculateLocationAndInsert(drw, location, data)); } }
public PictureValueSerializer(IXLogger logger, IXDrawing drw) { m_Logger = logger; m_Draw = drw; }
internal ScopedDocument(IDocumentAdapter docAdapter, IXDrawing drw, IXLogger logger, bool useRefDoc) { m_DocAdapter = docAdapter; m_CloseDrawing = false; m_CloseDocument = false; m_Logger = logger; m_Drawing = (IXDrawing)m_DocAdapter.GetDocumentReplacement(drw, true); if (drw != m_Drawing) { m_CloseDrawing = !m_Drawing.IsCommitted; } if (!m_Drawing.IsCommitted) { m_Drawing.Commit(); } if (useRefDoc) { var view = m_Drawing.Sheets.Active.DrawingViews.FirstOrDefault(); if (view == null) { throw new UserException("No drawing views in this document"); } var refDoc = view.ReferencedDocument; if (refDoc == null) { throw new UserException("View does not have a document"); } var conf = view.ReferencedConfiguration; var replDoc = (IXDocument3D)m_DocAdapter.GetDocumentReplacement(refDoc, true); if (refDoc != replDoc) { refDoc = replDoc; } m_CloseDocument = m_CloseDrawing || !refDoc.IsCommitted; if (!refDoc.IsCommitted) { refDoc.Commit(); } if (!conf.IsCommitted) { conf = refDoc.Configurations[conf.Name]; } Document = refDoc; Configuration = conf; } else { Document = m_Drawing; } }
public string GetData(IXDrawing drw, SourceData srcData) { var src = srcData.Source; using (var scopedDoc = new ScopedDocument(m_DocAdapter, drw, m_Logger, srcData.ReferencedDocument)) { IEdmVault5 vault; var doc = scopedDoc.Document; var conf = scopedDoc.Configuration; switch (src) { case Source_e.FilePath: return(doc.Path); case Source_e.PartNumber: if (conf == null) { throw new UserException("Part number can only be extracted from the configuration of part or assembly"); } return(conf.PartNumber); case Source_e.CustomProperty: IXProperty prp = null; if (conf != null) { conf.Properties.TryGet(srcData.CustomPropertyName, out prp); } if (prp == null) { doc.Properties.TryGet(srcData.CustomPropertyName, out prp); } if (prp != null) { return(prp.Value?.ToString()); } else { throw new UserException("Specified custom property does not exist"); } case Source_e.PdmVaultLink: const string CONISIO_URL_ACTION = "explore"; FindRelativeVaultPath(doc.Path, out vault); var file = vault.GetFileFromPath(doc.Path, out IEdmFolder5 folder); return($"conisio://{vault.Name}/{CONISIO_URL_ACTION}?projectid={folder.ID}&documentid={file.ID}&objecttype={(int)file.ObjectType}"); case Source_e.PdmWeb2Url: if (string.IsNullOrEmpty(srcData.PdmWeb2Server)) { throw new UserException("Url of Web2 server is not specified"); } var vaultRelPath = FindRelativeVaultPath(doc.Path, out vault); return($"{srcData.PdmWeb2Server}/{vault.Name}/{Path.GetDirectoryName(vaultRelPath).Replace('\\', '/')}?view=bom&file={Path.GetFileName(vaultRelPath)}"); case Source_e.Custom: return(srcData.CustomValue); default: throw new NotSupportedException(); } } }