コード例 #1
0
        public static void LoadThirdPartFile(SldWorks iswApp)
        {
            int err = -1;

            //启用3D Interconnect
            string         FileName   = AppDomain.CurrentDomain.BaseDirectory + @"ThirdPart\PlugBottomBox.IGS";
            ImportIgesData importData = default(ImportIgesData);

            importData = (ImportIgesData)iswApp.GetImportFileData(FileName);
            if ((importData != null))//指定参数加载
            {
                importData.IncludeSurfaces  = true;
                importData.IncludeCurves    = true;
                importData.CurvesAsSketches = true;
                importData.ProcessByLevel   = false;
            }
            iswApp.LoadFile4(FileName, "", importData, ref err);

            //启用3D Interconnect
            FileName   = AppDomain.CurrentDomain.BaseDirectory + @"ThirdPart\PowerStrip.IGS";
            importData = default(ImportIgesData);
            importData = (ImportIgesData)iswApp.GetImportFileData(FileName);
            if ((importData != null))//指定参数加载
            {
                importData.IncludeSurfaces  = true;
                importData.IncludeCurves    = true;
                importData.CurvesAsSketches = true;
                importData.ProcessByLevel   = false;
            }
            iswApp.LoadFile4(FileName, "", importData, ref err);

            //不启用3D Interconnect
            FileName = AppDomain.CurrentDomain.BaseDirectory + @"ThirdPart\PlugBottomBoxNon.IGS";
            iswApp.LoadFile4(FileName, "r", null, ref err);
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: wwkkww1983/SolidWorksAPI
        /// <summary>
        /// 载入STP、STEP文件
        /// </summary>
        /// <param name="partfilepath">文件路径</param>
        /// <returns>ModelDoc2模型</returns>
        private ModelDoc2 loadStepFile(String partfilepath)
        {
            ModelDoc2      doc        = null;
            ImportStepData importData = (ImportStepData)m_SwApp.GetImportFileData(partfilepath);

            if ((importData != null))
            {
                var err = 0;
                doc = (ModelDoc2)m_SwApp.LoadFile4(partfilepath, "r", importData, ref err);
            }
            return(doc);
        }
コード例 #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Starting..");

            var swApp = new SldWorks();

            var swAPIWarnings = 0;
            var swAPIErrors   = 0;

            var importData  = (ImportStepData)swApp.GetImportFileData(args[0]);
            var swActiveDoc = (ModelDoc2)swApp.LoadFile4(args[0], "r", importData, swAPIErrors);

            if (swActiveDoc == null)
            {
                Console.WriteLine("swActiveDoc nullo " + swAPIWarnings + " " + swAPIErrors);
                return;
            }

            var swAssemblyDoc = (AssemblyDoc)swActiveDoc;

            var SwConfiguration = swActiveDoc.GetActiveConfiguration();
            var rootComponent   = (Component2)SwConfiguration.GetRootComponent();
            var fileName        = rootComponent.Name2;

            //Console.WriteLine("Model " + fileName + " loaded correctly");

            var transforation =
                (Array)AssemblyTraverse.KL_GetTransformsOfAssemblyComponents(rootComponent, swApp);
            const string fatherName    = KLgraph.RootLabel;
            var          pathComponent = rootComponent.Name2;
            var          componentName = pathComponent.Split('/').Last();
            var          componentPath = rootComponent.GetPathName();
            var          id            = rootComponent.GetHashCode();

            var childrenNumber = rootComponent.IGetChildrenCount();
            var shape          = AssemblyTraverse.KL_GetShapeAssembly(rootComponent, swApp);
            var statistic      = AssemblyTraverse.KL_GetStatisticAssembly(rootComponent, swApp);
            var nodeAssembly   = new KLgraph.KLnodeAssembly(id, transforation, fatherName, -1, rootComponent, pathComponent, componentName, componentPath, -1,
                                                            childrenNumber, statistic, shape);

            //Console.WriteLine("Creato il nodo assemblato");

            var vertexList = new List <KLgraph.KLnode>();
            var edgeList   = new List <KLgraph.KLedge>();

            vertexList.Add(nodeAssembly);
            var listOfMyListOfInstances = new List <MyListOfInstances>();

            AssemblyTraverse.KL_GetGraphOfAssemblyComponents(rootComponent, nodeAssembly,
                                                             ref vertexList, edgeList, ref listOfMyListOfInstances, swApp);

            var partList = new List <KLgraph.KLnode>(vertexList);

            partList.RemoveAll(v => v.GetType() != typeof(KLgraph.KLnodePart));

            nodeAssembly.KLstatistic.PrincipalPartNumber = partList.Count();

            nodeAssembly.Instances.AddRange(listOfMyListOfInstances);


            List <MyPatternOfComponents> listPattern;
            List <MyPatternOfComponents> listPattern2;


            PatternComputationFunctions.GetAssemblyPatternsOfRepeatedElements(listOfMyListOfInstances, nodeAssembly,
                                                                              out listPattern, out listPattern2);



            //Console.WriteLine("Istanze trovate " + listOfMyListOfInstances.Count);
            //foreach (var inst in listOfMyListOfInstances)
            //{
            //    Console.WriteLine("Istanza di " + inst.Name + " trovata " + inst.ListOfMyComponent.Count + " volte");
            //}

            //Console.WriteLine("Pattern trovati " + listPattern.Count);
            //foreach (var patt in listPattern)
            //{
            //    Console.WriteLine("Pattern di " + patt.listOfMyRCOfMyPattern.First().Name);
            //}


            //Console.WriteLine("Ending.. nodi " + graph.VertexCount + " e archi " + graph.EdgeCount);


            //var fileName = Path.GetFileNameWithoutExtension(args[0]);
            //var storageGraph = new KLgraph.Graph(graph.Vertices.ToList(), graph.Edges.ToList());

            var storageGraph = new List <List <MyPatternOfComponents> >();

            storageGraph.Add(listPattern2);
            storageGraph.Add(listPattern);

            JsonSerializerSettings setting = new JsonSerializerSettings
            {
                TypeNameHandling       = TypeNameHandling.All,
                TypeNameAssemblyFormat = FormatterAssemblyStyle.Full
            };

            var directoryOutput = Path.GetDirectoryName(args[1]);
            var fileNameOutput  = Path.GetFileNameWithoutExtension(args[1]);

            //Console.WriteLine(directoryOutput);
            //Console.WriteLine(fileNameOutput);

            SaveModel(JsonConvert.SerializeObject(storageGraph, setting), directoryOutput, fileNameOutput + ".json");
            Console.WriteLine("JSON saved!");

            swApp.ExitApp();
        }