I am currently working on creating coordinate systems (CSYS) on a header plate for each flare hole in SolidWorks and facing an issue with controlling the CSYS pattern.
Current Approach
I am creating the header plate as a start part, where:
Height and width of the plate are controlled through a Design Table
Flare hole count and pattern are also controlled through the Design Table
A CSYS is required on every flare hole for downstream assembly automation
The challenge is that whenever the flare hole count increases or decreases, the corresponding CSYS also needs to automatically suppress/unsuppress.
What I Tried
To overcome this, I:
Created a point sketch pattern based on the flare hole pattern
Created CSYS using those sketch points as references
Controlled CSYS suppression/unsuppression through configurations/design table
Problem
Whenever a CSYS gets unsuppressed, the reference point seems to lose position / shift / go missing, causing the coordinate system reference to fail.
My Question
What would be the best practice to robustly control patterned CSYS when the flare hole count changes dynamically?
Has anyone handled:
Pattern-driven CSYS creation
Suppression/unsuppression linked to changing feature counts
Stable references for CSYS in parametric models?
Any suggestions on a better modeling strategy would be really helpful.
In my case, the requirement is related to assembly automation.
I have a header plate with multiple flare holes (created using forming tools), and for each hole, I need to create a coordinate system (CSYS). These CSYS are then used as references to mate tubes in the assembly (tube CSYS → header plate CSYS).
The challenge is that the header plate is fully parametric, where:
Height and width are controlled through a design table
Number of flare holes is also driven through the design table
Multiple configurations exist with different hole counts
So, the CSYS count must dynamically adapt to the number of holes.
What I tried:
To avoid managing a large number of CSYS manually in the design table, I:
Created a sketch point pattern driven by the flare hole pattern
Created CSYS using those sketch points as references
Linked the pattern count to the design table
This way, when the hole count changes, the point pattern (and intended CSYS positions) also updates automatically.
Issue I’m facing:
When the hole count increases or decreases and CSYS get unsuppressed,
the reference point becomes unstable / shifts / loses definition, which causes the CSYS to fail.
Main question:
Is there a recommended or robust way to handle CSYS for patterned features in SolidWorks?
Specifically:
Can we pattern CSYS directly in SolidWorks (similar to feature patterning)?
Or is there a better modeling strategy to ensure:
Stable references
Automatic update with pattern count
No dependency failure when suppressing/unsuppressing
IMO, there are times not to fight the system, but to figure out the best compromise to work within it.
If it were me, I would write a macro that suppressed any existing CSYS, applied new ones based on the current sketch, and stuffed them in a folder named to match the configuration.
This works well if there are a finite number of designs known at the start. It is less helpful if new configurations get added regularly, especially if personnel have to be trained in and follow this methodology.
It sounds like you’ve written yourself into a corner by starting with the problem of inserting a bunch of tubes into an assembly. You’ve solved that problem by writing code to mate tube csys to every csys you find in the header. But I think there’s a good chance that this is not the ideal approach.
Unless the tubes are all different, this should be done with a hole pattern in the header and a feature-driven component pattern in the assembly. There’s only one tube mated to the first hole in the pattern, and then all the rest of the tubes automatically update based on how many holes are in the pattern.
Thanks for the suggestion. Let me share the motivation behind why I am creating a CSYS-to-CSYS mating logic.
The primary goal is to develop a macro that reads the production BOM and automatically creates an assembly by inserting all the required components into a new assembly and mating them based on a CSYS mapping template. The mapping logic is controlled through an Excel template, which defines which part should mate to which component, corresponding CSYS references, orientation, and hierarchy. Different assemblies will have their own dedicated mapping templates.
Regarding the header plate flare hole to tube mating, the challenge is that the tube placement pattern is not always identical. This is an HVAC evaporator coil assembly, where tube placement changes based on the circuit configuration, and the routing/positioning can vary significantly. Through the Excel mapping, we can control which tube mates to which flare hole and at what orientation/angle, making the assembly logic flexible for different circuit designs.
Also, the macro is not being developed only for this evaporator assembly — the objective is to make it generic and scalable for different HVAC unit assemblies, where component relationships and mating logic may vary considerably.
Just wanted to confirm one thing — would it be feasible to develop another macro for automatic CSYS creation at the hole sketch points? I also need to create a reference plane at each hole location to control the tube angle/orientation, so I am exploring whether a macro-driven approach for both CSYS and plane creation would be a robust solution.
Thanks for the suggestion. I agree that fighting SolidWorks rebuild behavior is becoming difficult in this case. Since the flare hole count changes dynamically through the design table, I was trying to avoid macro dependency and control suppression directly. However, regenerating the CSYS based on current sketch points after rebuild sounds like a more robust approach. I will explore whether I can automate the CSYS recreation through VBA while keeping naming consistency for downstream assembly automation.