コード例 #1
0
        public IXApplication StartApplication(AppVersionInfo vers, StartupOptions_e opts, CancellationToken cancellationToken)
        {
            var args = new List <string>();

            if (opts.HasFlag(StartupOptions_e.Safe))
            {
                args.Add(SwApplication.CommandLineArguments.SafeMode);
            }

            if (opts.HasFlag(StartupOptions_e.Background))
            {
                args.Add(SwApplication.CommandLineArguments.BackgroundMode);
            }

            if (opts.HasFlag(StartupOptions_e.Silent))
            {
                args.Add(SwApplication.CommandLineArguments.SilentMode);
            }

            var app = SwApplication.Start(((SwAppVersionInfo)vers).Version,
                                          string.Join(" ", args),
                                          cancellationToken);

            app.Sw.CommandInProgress = true;

            return(app);
        }
コード例 #2
0
        internal SwPart(IPartDoc part, SwApplication app, IXLogger logger, bool isCreated)
            : base((IModelDoc2)part, app, logger, isCreated)
        {
            m_CutListRebuild = new CutListRebuildEventsHandler(this);

            Bodies = new SwPartBodyCollection(this);
        }
コード例 #3
0
 public AppVersionInfo ParseVersion(string version)
 {
     if (string.IsNullOrEmpty(version))
     {
         var installedVers = SwApplication.GetInstalledVersions();
         if (installedVers.Any())
         {
             return(new SwAppVersionInfo(installedVers.OrderBy(v => (int)v).First()));
         }
         else
         {
             throw new Exception("Failed to find installed version of the host application");
         }
     }
     else if (int.TryParse(version, out int rev))
     {
         var swVers = (SwVersion_e)Enum.Parse(typeof(SwVersion_e), $"Sw{rev}");
         return(new SwAppVersionInfo(swVers));
     }
     else if (version.StartsWith("solidworks", StringComparison.CurrentCultureIgnoreCase))
     {
         var swVers = (SwVersion_e)Enum.Parse(typeof(SwVersion_e), $"Sw{version.Substring("solidworks".Length).Trim()}");
         return(new SwAppVersionInfo(swVers));
     }
     else
     {
         var swVers = (SwVersion_e)Enum.Parse(typeof(SwVersion_e), version);
         return(new SwAppVersionInfo(swVers));
     }
 }
コード例 #4
0
        internal SwCommandManager(SwApplication app, int addinCookie, ILogger logger)
        {
            m_App = app;

            CmdMgr = m_App.Application.GetCommandManager(addinCookie);

            m_Logger      = logger;
            m_Commands    = new Dictionary <string, CommandInfo>();
            m_CommandBars = new List <SwCommandGroup>();
        }
コード例 #5
0
        internal SwDocumentDispatcher(SwApplication app, IXLogger logger)
        {
            m_App    = app;
            m_Logger = logger;

            m_DocsDispatchQueue   = new List <SwDocument>();
            m_ModelsDispatchQueue = new List <ModelInfo>();

            m_Lock = new object();
        }
コード例 #6
0
        public void IsVersionNewerOrEqualTest()
        {
            var sw2017sp23Mock = new Mock <SldWorks>();

            sw2017sp23Mock.Setup(m => m.RevisionNumber()).Returns("25.2.3");
            var app = SwApplication.FromPointer(sw2017sp23Mock.Object);

            var r1 = app.IsVersionNewerOrEqual(SwVersion_e.Sw2017);
            var r2 = app.IsVersionNewerOrEqual(SwVersion_e.Sw2017, 2);
            var r3 = app.IsVersionNewerOrEqual(SwVersion_e.Sw2017, 2, 3);
            var r4 = app.IsVersionNewerOrEqual(SwVersion_e.Sw2017, 3);
            var r5 = app.IsVersionNewerOrEqual(SwVersion_e.Sw2017, 1);
            var r6 = app.IsVersionNewerOrEqual(SwVersion_e.Sw2016, 4);
            var r7 = app.IsVersionNewerOrEqual(SwVersion_e.Sw2018, 0);

            Assert.IsTrue(r1);
            Assert.IsTrue(r2);
            Assert.IsTrue(r3);
            Assert.IsFalse(r4);
            Assert.IsTrue(r5);
            Assert.IsTrue(r6);
            Assert.IsFalse(r7);
            Assert.Throws <ArgumentException>(() => app.IsVersionNewerOrEqual(SwVersion_e.Sw2017, null, 1));
        }
コード例 #7
0
ファイル: SwDocument3D.cs プロジェクト: persadewh/xcad
 internal SwDocument3D(IModelDoc2 model, SwApplication app, IXLogger logger, bool isCreated) : base(model, app, logger, isCreated)
 {
     m_MathUtils      = app.Sw.IGetMathUtility();
     m_Configurations = new Lazy <ISwConfigurationCollection>(() => new SwConfigurationCollection(app.Sw, this));
     m_ModelViews     = new Lazy <ISwModelViewsCollection>(() => new SwModelViewsCollection(this, m_MathUtils));
 }
コード例 #8
0
 internal SwDrawing(IDrawingDoc drawing, SwApplication app, IXLogger logger, bool isCreated)
     : base((IModelDoc2)drawing, app, logger, isCreated)
 {
     m_SheetsLazy = new Lazy <IXSheetRepository>(() => new SwSheetCollection(this));
 }
コード例 #9
0
 internal SwCommandGroup(SwApplication app, CommandGroupSpec spec, CommandGroup cmdGroup)
 {
     Spec         = spec;
     CommandGroup = cmdGroup;
     m_App        = app;
 }
コード例 #10
0
 internal SwAssembly(IAssemblyDoc assembly, SwApplication app, IXLogger logger, bool isCreated)
     : base((IModelDoc2)assembly, app, logger, isCreated)
 {
     m_LazyConfigurations = new Lazy <SwAssemblyConfigurationCollection>(() => new SwAssemblyConfigurationCollection(app.Sw, this));
 }
コード例 #11
0
 public IEnumerable <AppVersionInfo> GetInstalledVersions()
 => SwApplication.GetInstalledVersions()
 .Select(x => new SwAppVersionInfo(x));
コード例 #12
0
 internal SwAssembly(IAssemblyDoc assembly, SwApplication app, IXLogger logger, bool isCreated)
     : base((IModelDoc2)assembly, app, logger, isCreated)
 {
     Components = new SwAssemblyComponentCollection(this);
 }
コード例 #13
0
ファイル: SwDrawing.cs プロジェクト: persadewh/xcad
 internal SwDrawing(IDrawingDoc drawing, SwApplication app, IXLogger logger, bool isCreated)
     : base((IModelDoc2)drawing, app, logger, isCreated)
 {
     Sheets = new SwSheetCollection(this);
 }