| | | 1 | | using System; |
| | | 2 | | |
| | | 3 | | namespace SolidEdgeCommunity.Extensions; |
| | | 4 | | |
| | | 5 | | /// <summary> |
| | | 6 | | /// SolidEdgeFramework.Documents extension methods. |
| | | 7 | | /// </summary> |
| | | 8 | | public static class DocumentsExtensions |
| | | 9 | | { |
| | | 10 | | /// <summary> |
| | | 11 | | /// Creates a new document. |
| | | 12 | | /// </summary> |
| | 7 | 13 | | internal static TDocumentType Add<TDocumentType>(this Documents documents, string progId) where TDocumentType : clas |
| | | 14 | | |
| | | 15 | | /// <summary> |
| | | 16 | | /// Creates a new document. |
| | | 17 | | /// </summary> |
| | 4 | 18 | | internal static TDocumentType Add<TDocumentType>(this Documents documents, string progId, object TemplateDoc) where |
| | | 19 | | |
| | | 20 | | /// <summary> |
| | | 21 | | /// Creates a new document. |
| | | 22 | | /// </summary> |
| | | 23 | | /// <typeparam name="TDocumentType">SolidEdgeAssembly.AssemblyDocument, SolidEdgeDraft.DraftDocument, SolidEdgePart. |
| | | 24 | | /// <param name="documents"></param> |
| | | 25 | | /// <returns></returns> |
| | | 26 | | public static TDocumentType Add<TDocumentType>(this Documents documents) where TDocumentType : class |
| | | 27 | | { |
| | 6 | 28 | | var t = typeof(TDocumentType); |
| | | 29 | | |
| | 6 | 30 | | if (t.Equals(typeof(SolidEdgeAssembly.AssemblyDocument))) |
| | | 31 | | { |
| | 1 | 32 | | return (TDocumentType)documents.AddAssemblyDocument(); |
| | | 33 | | } |
| | 5 | 34 | | else if (t.Equals(typeof(SolidEdgeDraft.DraftDocument))) |
| | | 35 | | { |
| | 1 | 36 | | return (TDocumentType)documents.AddDraftDocument(); |
| | | 37 | | } |
| | 4 | 38 | | else if (t.Equals(typeof(SolidEdgePart.PartDocument))) |
| | | 39 | | { |
| | 1 | 40 | | return (TDocumentType)documents.AddPartDocument(); |
| | | 41 | | } |
| | 3 | 42 | | else if (t.Equals(typeof(SolidEdgePart.SheetMetalDocument))) |
| | | 43 | | { |
| | 1 | 44 | | return (TDocumentType)documents.AddSheetMetalDocument(); |
| | | 45 | | } |
| | | 46 | | else |
| | | 47 | | { |
| | 2 | 48 | | throw new NotSupportedException(); |
| | | 49 | | } |
| | | 50 | | } |
| | | 51 | | |
| | | 52 | | /// <summary> |
| | | 53 | | /// Creates a new assembly document. |
| | | 54 | | /// </summary> |
| | | 55 | | public static SolidEdgeAssembly.AssemblyDocument AddAssemblyDocument(this Documents documents) |
| | 1 | 56 | | => documents.Add<SolidEdgeAssembly.AssemblyDocument>(SolidEdgeSDK.PROGID.SolidEdge_AssemblyDocument); |
| | | 57 | | |
| | | 58 | | /// <summary> |
| | | 59 | | /// Creates a new assembly document. |
| | | 60 | | /// </summary> |
| | | 61 | | public static SolidEdgeAssembly.AssemblyDocument AddAssemblyDocument(this Documents documents, object TemplateDoc) |
| | 1 | 62 | | => documents.Add<SolidEdgeAssembly.AssemblyDocument>(SolidEdgeSDK.PROGID.SolidEdge_AssemblyDocument, TemplateDoc |
| | | 63 | | |
| | | 64 | | /// <summary> |
| | | 65 | | /// Creates a new draft document. |
| | | 66 | | /// </summary> |
| | | 67 | | public static SolidEdgeDraft.DraftDocument AddDraftDocument(this Documents documents) |
| | 2 | 68 | | => documents.Add<SolidEdgeDraft.DraftDocument>(SolidEdgeSDK.PROGID.SolidEdge_DraftDocument); |
| | | 69 | | |
| | | 70 | | /// <summary> |
| | | 71 | | /// Creates a new draft document. |
| | | 72 | | /// </summary> |
| | | 73 | | public static SolidEdgeDraft.DraftDocument AddDraftDocument(this Documents documents, object TemplateDoc) |
| | 1 | 74 | | => documents.Add<SolidEdgeDraft.DraftDocument>(SolidEdgeSDK.PROGID.SolidEdge_DraftDocument, TemplateDoc); |
| | | 75 | | |
| | | 76 | | /// <summary> |
| | | 77 | | /// Creates a new part document. |
| | | 78 | | /// </summary> |
| | | 79 | | public static SolidEdgePart.PartDocument AddPartDocument(this Documents documents) |
| | 2 | 80 | | => documents.Add<SolidEdgePart.PartDocument>(SolidEdgeSDK.PROGID.SolidEdge_PartDocument); |
| | | 81 | | |
| | | 82 | | /// <summary> |
| | | 83 | | /// Creates a new part document. |
| | | 84 | | /// </summary> |
| | | 85 | | public static SolidEdgePart.PartDocument AddPartDocument(this Documents documents, object TemplateDoc) |
| | 1 | 86 | | => documents.Add<SolidEdgePart.PartDocument>(SolidEdgeSDK.PROGID.SolidEdge_PartDocument, TemplateDoc); |
| | | 87 | | |
| | | 88 | | /// <summary> |
| | | 89 | | /// Creates a new sheetMetal document. |
| | | 90 | | /// </summary> |
| | | 91 | | public static SolidEdgePart.SheetMetalDocument AddSheetMetalDocument(this Documents documents) |
| | 2 | 92 | | => documents.Add<SolidEdgePart.SheetMetalDocument>(SolidEdgeSDK.PROGID.SolidEdge_SheetMetalDocument); |
| | | 93 | | |
| | | 94 | | /// <summary> |
| | | 95 | | /// Creates a new sheetMetal document. |
| | | 96 | | /// </summary> |
| | | 97 | | public static SolidEdgePart.SheetMetalDocument AddSheetMetalDocument(this Documents documents, object TemplateDoc) |
| | 1 | 98 | | => documents.Add<SolidEdgePart.SheetMetalDocument>(SolidEdgeSDK.PROGID.SolidEdge_SheetMetalDocument, TemplateDoc |
| | | 99 | | |
| | | 100 | | /// <summary> |
| | | 101 | | /// Opens an existing Solid Edge document. |
| | | 102 | | /// </summary> |
| | | 103 | | public static TDocumentType Open<TDocumentType>(this Documents documents, string Filename) |
| | 2 | 104 | | where TDocumentType : class => (TDocumentType)documents.Open(Filename); |
| | | 105 | | |
| | | 106 | | /// <summary> |
| | | 107 | | /// Opens an existing Solid Edge document. |
| | | 108 | | /// </summary> |
| | | 109 | | public static TDocumentType Open<TDocumentType>( |
| | | 110 | | this Documents documents, |
| | | 111 | | string Filename, |
| | | 112 | | object DocRelationAutoServer, |
| | | 113 | | object AltPath, |
| | | 114 | | object RecognizeFeaturesIfPartTemplate, |
| | | 115 | | object RevisionRuleOption, |
| | | 116 | | object StopFileOpenIfRevisionRuleNotApplicable) |
| | 1 | 117 | | => (TDocumentType)documents.Open(Filename, |
| | 1 | 118 | | DocRelationAutoServer, |
| | 1 | 119 | | AltPath, |
| | 1 | 120 | | RecognizeFeaturesIfPartTemplate, |
| | 1 | 121 | | RevisionRuleOption, |
| | 1 | 122 | | StopFileOpenIfRevisionRuleNotApplicable); |
| | | 123 | | |
| | | 124 | | /// <summary> |
| | | 125 | | /// Opens an existing Solid Edge document in the background with no window. |
| | | 126 | | /// </summary> |
| | | 127 | | public static TDocumentType OpenInBackground<TDocumentType>(this Documents documents, string Filename) |
| | | 128 | | { |
| | | 129 | | const ulong JDOCUMENTPROP_NOWINDOW = 0x00000008; |
| | 2 | 130 | | return (TDocumentType)documents.Open(Filename, JDOCUMENTPROP_NOWINDOW); |
| | | 131 | | } |
| | | 132 | | |
| | | 133 | | /// <summary> |
| | | 134 | | /// Opens an existing Solid Edge document in the background with no window. |
| | | 135 | | /// </summary> |
| | | 136 | | public static TDocumentType OpenInBackground<TDocumentType>( |
| | | 137 | | this Documents documents, |
| | | 138 | | string Filename, |
| | | 139 | | object AltPath, |
| | | 140 | | object RecognizeFeaturesIfPartTemplate, |
| | | 141 | | object RevisionRuleOption, |
| | | 142 | | object StopFileOpenIfRevisionRuleNotApplicable) |
| | | 143 | | { |
| | | 144 | | const ulong JDOCUMENTPROP_NOWINDOW = 0x00000008; |
| | 1 | 145 | | return (TDocumentType)documents.Open(Filename, |
| | 1 | 146 | | JDOCUMENTPROP_NOWINDOW, |
| | 1 | 147 | | AltPath, |
| | 1 | 148 | | RecognizeFeaturesIfPartTemplate, |
| | 1 | 149 | | RevisionRuleOption, |
| | 1 | 150 | | StopFileOpenIfRevisionRuleNotApplicable); |
| | | 151 | | } |
| | | 152 | | } |