Scaling sub-components
-
I'm trying to make a scalable steel band consisting of two sub-components, two end pieces and one middle piece. I have made the two sub-components and set scaling restrictions on the end pieces to make them non-scalable. I have then put three pieces together and made them one dynamic component. When I scale it it effects the entire component and the holes get elongated. How do I compose these sub-components so that the middle piece is changed and the end pieces are left unaffected?
-
Is this for a Dynamic Component? If so, you need to set the scaling for the Len(x) of the center component and only move the end component on the right. Don't apply the scaling to the whole parent component.
-
@dave r said:
Is this for a Dynamic Component? If so, you need to set the scaling for the Len(x) of the center component and only move the end component on the right. Don't apply the scaling to the whole parent component.
This is meant to be a dynamic component. I now set the scaling of the main component and both end sub-components to all hidden. The scaling of the middle part is hidden except for the X axis. This means that there are no scaling handles visible at all so no scaling is possible. Did I misunderstand what you said?
-
I think you did misunderstand. there should be no scaling for the parent component nor for the end components. The only component that should get scaled would be the center component. Remove any scaling you've created for the parent component.
-
You shouldn't use a dinamic component to do that, you should use fredo scale box stretching to target instead. Much more practical and less computer intensive.
Nonetheless there you have it (skp file attached). The scale is applied to the parent component...
Constraints are in the LenX, LenY, LenX of end parts, LenY, LenZ of middle part, X position of the middle part, and the LenX of the Middle part is a formula that subtracts total LenX with the LenX of the end parts (MiddleLenX)
Scale is applied to the whole component (composed of 3 parts) and scales are all hidden except on the X direction.
EDIT: the trick I use to keep all parts solid and not see the seams is to hide top faces and edges. Toggle hidden geometry on off. If you hide seam lines inner faces still show up, if you erase inner faces those 3 parts are no longer solids. The parent component isn't a solid itself... (it could be if you used fredoscale)
-
There's nothing wrong with making a dynamic component of this.
-
No there isn't but it takes some time and probably adds complexity to the whole model. Too much dynamic components makes Sketchup a bit slow too.
Besides that with fredo scale you can use the center of the holes to place your part while with the scale tool, wich grabs component's endpoints, you can't.
Fredo scale, unfortunately might mess your dynamic components as axis may get funky. This DC doesn't seem to, I've tried, but most I have do (specially with rotation).
Best regards,
João
-
I guess you know what the OP wanted better than I do.
-
Surely it should be a group.
-
@box said:
Surely it should be a group.
the outer wrapper should be a component, the inner wrapper a group containing groups that way the inner wrapper can be outer-shelled and exploded leaving a solid which can be taken off as a single item. (the component can be swapped if required editing) If they were all components one would have a lot of unused components to be purged, at least groups clean-up after themselves.
-
@pcmoor said:
@box said:
Surely it should be a group.
the outer wrapper should be a component, the inner wrapper a group containing groups that way the inner wrapper can be outer-shelled and exploded leaving a solid which can be taken off as a single item. (the component can be swapped if required editing) If they were all components one would have a lot of unused components to be purged, at least groups clean-up after themselves.
But what if that part is work in progress... Wouldn't it be nice to have a change made in one of the part reflect the other?
I guess the 2 end parts should be components if that would be the case. Also, if you replicate a lot of this DC's and want to make changes to them it's good to have them composed of components.
This is a case where I do prefer components over groups.
The other important reason is that if you loose so much time to set up a DC, you might want to save it to a library for later use that is possible with components too.
@dave r said:
I guess you know what the OP wanted better than I do.
I'm sorry but I don't know what OP means...
I just try to share my point of view over this kind of (stretching) DC's as complete as I can and obviously I feel it's a question worth sharing and I feel I've done all I can to make it clear.
I lost a lot of time with DC's trying to create windows I could scale without deformation. In the end I found faster and better solutions that I think people should be aware of so they can decide for themselves.
If I can share the lessons I learnt I might be saving someone else's time. DC's are great and fun to use, but challenging sometimes and there are diferent aproaches wich also get there. Box Stretching to Target, from FredoScale is a very valid alternative for this kinds of DCs. It avoids most of DC's problems and still is easier to use.
One of this problems that we didn't adress here and Fredoscale solves is the way textures fit together between the 3 components. (that is a problem clearly visible in the first post). Textures fit only if the middle component/group is not scaled, that is not so bad for a part like this, but for windows made of wood, or for other complex shapes, it's a major issue as the middle part get's texture stretched and/or the seams will be noticeable.
-
@jql said:
You shouldn't use a dynamic component to do that, you should use fredo scale box stretching to target instead. Much more practical and less computer intensive ...
This is exactly what I wanted to do. Thanks a lot!
Advertisement