1

J'essaie d'automatiser le chargement de fichier SAT dans SolidWorks en faisant un Add-in.

pour cela j'utilise LoadFile4

swPart = (PartDoc)mSldWorksApplication.LoadFile4(fileNameToWorkOn,"r", ImportData, ref m_LongStatus);

Je n'arrive pas à lire le fichier (m_LongStatus=1)

voici une partie de mon code

  foreach (var file in ListOfFiles)
  {
     if (file.EntityName.ToUpper().Contains(".SAT"))
     {
         using (Stream rStream = zipFileSystem.OpenFile(file, FileAccess.Read))
         {
             string fileNameToWorkOn = "d:\\temp\\" + file.EntityName;
             var wfileStream = File.Create(fileNameToWorkOn);
             rStream.CopyTo(wfileStream);
             // work with the physical tempory files to  import it in SolidWorks
             //Import SAT file
             ImportData = (Import3DInterconnectData)mSldWorksApplication.GetImportFileData(fileNameToWorkOn);
             string fileNameToCreate = fileNameToWorkOn.ToUpper().Replace(".SAT", ".SLDPRT");
             ModelDoc2 swModel = mSldWorksApplication.OpenDoc6(fileNameToCreate, (int)swDocumentTypes_e.swDocPART, (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", 0, 0);
             swPart = (PartDoc)mSldWorksApplication.LoadFile4(fileNameToWorkOn,"r", ImportData, ref m_LongStatus);
             swModel = (ModelDoc2)swPart;
             //Close the model
             mSldWorksApplication.CloseDoc(fileNameToCreate);
             wfileStream.Close();
             // delete now the physical tempory files
             File.Delete(fileNameToWorkOn);
        }
    }
 }

quelqu'un a t-il déjà eu ce problème ?

  • Le fichier est verrouillé quand solidworks essaie de le lire. Faut extraire le fichier en premier lieu et puis le lire avec LoadFile en dehors de ton using statement. Tu peux poser la question sur cadoverflow.com – Amen Jlili Feb 22 '23 at 19:19

0 Answers0