All possible by creating a "New" BOM template and additional custom properties
The best would be to add another configuration specific property and assign the value/number there.
Now insert a general table in drawing where you can list both config part number and assigned short number. And In BOM, change the column property to new short value property.
Thank you Deepak... I will try to do it as per your suggestion and let you know if any help required.
Hi Deepak and John,
Sorry for the delayed reply... I was busy with some other things.
Ok now coming to the problem, I am not able to call all the configurations of the Assembly in a general table and I also did not use the "design table" to create the configurations inserting a design table is also ruled out case . Please let me know if any options to do the same...?(may be macros if any)
Again I am stating my problem in the below image.
Why don't you switch your configuration name to the letter symbol and add a the Partnumber to your configuration description instead.
That way you maintain the info and can populate it in the bom table. No macro needed. In your assemblies you will need to reassign the configuration names but that's something you can automate for existing design. Any future design won't have that issue.
That's how I would approach it.
Hi Elmar Klammer,
Thank you for your suggestion. From your suggestion I can sort out the table length issue.
But, I have one more issue as described in my previous reply, I need to show the description of the each assembly configuration as well in the drawing as these are having separate part number.
Create a reference assembly. Say you have 3 versions of your sub assembly. Add 3 instances of the sub assembly and make sure you select a different configuration for each instance. Now insert a drawing view and use the reference assembly. Create a BOM for this view and hide the drawing view itself. Adjust the BOM to show configuration name, description & part number.
That gives you what you need.
The only way I know to list all properties of the different configurations is a macro written by Markku Lehtola - however the macro search is everything from the folder, so to just collect the data from one component you would need to place that configured part in a folder by itself...
See the attached excel file - the file path input is cell D4 in both the part and assembly tabs - In Row 6 in the orange cells is the custom property name that it searches for, you can change that to your own custom properties and cell D3 is the amount of custom properties it will read, you can also change this as well......
Once you read everything you can save the results and paste it as a Table into the drawing file..
SW_Import_Export Properties.xls 152.0 KB
Thank you very much for your input. This Excel file is very helpful for me for other activities too.
Coming to my present problem, Is it possible to make a customized button for the using this macro and create a table only to the drawing related part/assembly and their configurations?
as I don't have any knowledge about the programming I am asking this question.
This macro reads an entire folder, so the only way I would know is to insert all the parts used in one folder, then it would provide you with what you need, but that can be an issue if you use interchangeable components.. There is one idea that may work for you and that is do a pack and go for the assembly and save it on your desk top, then you could easily read just that folder.
Below code is working for me to collect configuration names and Description config specific properties associated with them.
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim myTable1 As TableAnnotation
Function InsertTable1(rowCount As Integer, columnCount As Integer) As TableAnnotation
If columnCount < 3 Then
MsgBox "Invalid table column"
Dim myTable As TableAnnotation
Set myTable = Part.InsertTableAnnotation(3.50025261755506E-02, 0.807825915596727, 1, rowCount, columnCount)
If Not myTable Is Nothing Then
myTable.BorderLineWeight = 0
myTable.GridLineWeight = 0
boolstatus = myTable.MergeCells(0, 0, 0, 2)
myTable.Text(0, 0) = "ASSEMBY CONFIGURATION TABLE"
myTable.Text(1, 0) = "CONFIG"
myTable.Text(1, 1) = "CPN/RPN/GPN"
myTable.Text(1, 2) = "DESCRIPTION"
Set InsertTable1 = myTable
Function GetPartDescription(asmDoc As ModelDoc2, configName As String, propertyName As String) As String
Dim cfg As Configuration
Set cfg = asmDoc.GetConfigurationByName(configName)
Dim custPropertyManager As CustomPropertyManager
Set custPropertyManager = cfg.CustomPropertyManager
Dim ValOut As String
Dim ResolvedValOut As String
Dim wasResolved As Boolean
custPropertyManager.Get5 propertyName, False, ValOut, ResolvedValOut, wasResolved
GetPartDescription = ValOut
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.activeView
Dim dDoc As DrawingDoc
Set dDoc = Part
Dim activeView As View
Set activeView = dDoc.ActiveDrawingView
If activeView Is Nothing Then
Dim dComponent As DrawingComponent
Set dComponent = activeView.RootDrawingComponent
Dim component As Component2
Set component = dComponent.component
Dim asmDoc As AssemblyDoc
Set asmDoc = component.GetModelDoc2
Dim asmModDoc As ModelDoc2
Set asmModDoc = asmDoc
Dim configNames() As String
Dim configCount As Integer
configCount = asmModDoc.GetConfigurationCount
'insert table now
Set myTable1 = InsertTable1(configCount + 2, 3)
'Get names of all configurations and add into table
Dim i As Long
configNames = asmModDoc.GetConfigurationNames
For i = 0 To UBound(configNames)
Dim configName As String
configName = configNames(i)
myTable1.Text(i + 2, 0) = i + 1
myTable1.Text(i + 2, 1) = configName
' this is name of custom property we will search for description
Dim partDescCustomProperty As String
partDescCustomProperty = "DESCRIPTION"
Dim partDesc As String
partDesc = GetPartDescription(asmModDoc, configName, partDescCustomProperty)
myTable1.Text(i + 2, 2) = partDesc
Had similar issues, I think that's something that needs some major improving. I found workarounds but none I can apply in all cases which make creating a standard process near impossible. When using a general table you don't have a way to link properties to a specific part's "configuration specific property", like a dimension that is changing. I also tried using BOM tables showing all configs and hiding all the columns I did not need then trying to add property columns, but again it works in some cases not all. Really it depends on the assembly. Even the standard table that is made for all configurations is huge you cant reorganize it I think that it looks sloppy at best, each config has a column but really I would rather have a property in the column. Feel like I've read all messages and tried every combination imaginable still not satisfied. Inserting a design table in the drawing looks the best after hiding rows and columns however I find it very buggy causing solidworks to lock up, crash, or not load the table as the excel.exe32 gets hung up then you have to use task manager to monitor it the whole time you are working on it and force close as needed.
Please look into this Solidworks!
Configurations have tons of potential but people avoid them because of these issues. At a model level they work fairly well but we need to make table drawings with those files.
I submitted this feature request for many of the missing tools we need for making tabulated drawings from configurations. I think it relates to this thread. Please review and vote on it by logging into your Solidworks Customer Support Portal and searching for the number above.