Hello. I am searching for a way to list or find all the parts that are active in Solid edge ST7 and list these. The parts may be active or inactive in an open assembly or the may be in the background and loaded ot stuck in memory. This would give another user a read only part.
It seems we are running into this issue a lot and if I can find them we can close them. I think this is a little bit of a bug but still searching.
I assume that since you posted this in the programming forum that you're looking for a code way to accomplish this task. I don't have a specifc example but a google search of "programmatically find files open by process" yielded some interesting results.
There are also apps that can do this for you. For example, Process Explorer can tell you what files a given process has open.
Thank you for the ideas. I was looking for a code way to see what files solid edge has loaded into memory. We are running into files being present in a sub-assembly that a user cannot open with write access. This file is also present in another subassembly opened con-currently by user2.
They both show as inactive in the edge bar and they show up as read access in "open file management on the file server" for both users. Most of the time just closing the assembly does not release the part. One of the users has to completely close Solid edge. This has become a common headache since moving to ST7. I had hoped for a solution similar to the excellent "Close Multiple" program that Tushar had created and shared with the community.
- I verified that all SE file types are added as exclusions.
- We do not have any custom addins running or created.
Also there is an Ir#7308131 created for this issue that was filed by our reseller.
I posted on a similar problem we have with ST6 in the Solid Edge User forum.
We have never found a solution and will soon be moving to ST7.
I was hoping that might fix the problem, but maybe not.
We have our files stored on a NAS drive, and I think the suggestion was that something in our setup was causing the problem.
.I'm inclined to agree with this as we are also having occasional problems recently with files disappearing from the system. Some have gone completely and we have to get versions from backup. Others seem to get deleted and appear in a Recycle Bin.
We also have occasional problems with Revision Manager when renaming files - sometimes we get a message that the original file cannot be deleted (rename being copy the delete original).
Sometimes the file gets removed anyway, but other times we have to delete it manually.
Found the thread -
I had a similar problem i have dealed from a different point of view.
What i would really like to know is if a file resource is locked (i.e. something, maybe solidedge, have placed a lock on it).
Public Shared Function IsFileLocked(ByVal FileName As String) As Boolean Dim objFS As System.IO.FileStream Try If Not IO.File.Exist(FileName) Then Exit Function 'attempt to open the file objFS = IO.File.Open(FileName, System.IO.FileMode.Open) objFS.Close() Return False Catch ex As Exception 'if err.number = 57, then you know that another 'process, i.e., FTP Transfer, has a lock on it 'and you can't use it until it is freed up. Return True End Try End Function
Whenever i iave found that the resource is locked, i attempt to connect with SolidEdge and clear (close) everything inside, hoping to release the lock.
Hope this helps,
Thanks for the example code. I am at a loss if there is any way to use this information to get Solid edge to drop its lock on the file. Using the suggestion from Jason Newell I can see in Process Explorer that the files are locked by Edge.exe. When I look at the session of Solid Edge
I see that the part is inactive in the edge bar and the assembly was opened with all parts inactive.
But the part(s) are locked from write access until Assembly is closed. Or occasionally the session of Solid edge is ended.
Thanks again for the ideas.