Title pretty much resumes it all. Is it possible?
Solved! Go to Solution.
Solved by Curtis_Waguespack. Go to Solution.
@Anonymous wrote:
Title pretty much resumes it all. Is it possible?
Absolutely
Simply change the scale of the base view..
All of its protected views will scale..
Voila... Multiple views scaled at once.
Yes, I did notice changing the scale of the main view will change the scale of it's projected views, but what if the views are not linked together(2 different parts or assemblies)
Hi @mcgyvr,
That works only if its projected from base view. What if there is folded part and developed part (Flat pattern) with different scale ? There should be option to select multiple views and assign a scale. May be something to put in ideas area ?
Also, talking about scales, there should be option when you scroll over view, it shows scale without double click or labelling.
Regards,
Yash
Of course.
There are certainly times where changing the base view alone is insufficient..
Those stipulations where not defined as part of the original question though.
They seemed to feel that the "title pretty much resumes it all" (clearly it didn't)
There is no out of the box "one button scaling" for all views regardless of their association to others.
I simply answered the question as posted and I fully expected additional details to follow. 😉
Hi @Anonymous
Here's a quick iLogic rule for this.
I hope this helps.
Best of luck to you in all of your Inventor pursuits,
Curtis
http://inventortrenches.blogspot.com
oCurrentScale = ThisApplication.ActiveDocument.Sheets.Item(1).DrawingViews.Item(1).Scale Dim oScale As Double = InputBox("Enter new scale", "iLogic", oCurrentScale) For Each oSheet In ThisApplication.ActiveDocument.Sheets oSheet.Activate For Each oView In oSheet.DrawingViews If oView.ScaleFromBase = False Then oView.Scale = oScale End If Next Next
I've added this rule and it has worked but it applies the rule (scale all views) to all of the sheets in the drawing. Was wondering what I would have to change to get it to work on just the views on the current sheet I'm working with and not the entire drawing?
For changing scale just in the active sheet you can use:
oCurrentScale = ThisApplication.ActiveDocument.ActiveSheet.DrawingViews.Item(1).Scale Dim oScale As Double = InputBox("Enter new scale", "iLogic", oCurrentScale) For Each oView In ThisApplication.ActiveDocument.ActiveSheet.DrawingViews If oView.ScaleFromBase = False Then oView.Scale = oScale End If Next
If you want to enter scale in fraction, use:
oCurrentScale = ThisApplication.ActiveDocument.ActiveSheet.DrawingViews.Item(1).Scale Dim oScale As String = InputBox("Enter new scale", "ilogic", oCurrentScale)
If (Not String.IsNullOrWhiteSpace(oScale)) Then
oScale = ThisApplication.UnitsOfMeasure.GetValueFromExpression(oScale, UnitsTypeEnum.kUnitlessUnits)
End If
For Each oView In ThisApplication.ActiveDocument.ActiveSheet.DrawingViews
If oView.ScaleFromBase = False Then
oView.Scale = oScale
End If
Next
Is there a variation in the formula to use ratio for eg. 1:12.5 it shows 0.08:1 in the label? Would like it to show as 1:12.5 in the label.
Hi! I think this is because the oScale here is a Double number. If you set it to String, it should be displayed as you type it.
Many thanks!
Hi Adam,
It could be a syntax error or a limitation. Please share the iLogic rule, so that the iLogic experts can help take a look.
Many thanks!
Hi! There are two places I would do differently. First, "oView" needs to be declared as DrawingView
Dim oView as DrawingView
Then the scale can be input quite easily by using the following statement. It does not need to be a number. It can be a string like "1:15."
oView.ScaleString = oScale
Many thanks!
Can't find what you're looking for? Ask the community or share your knowledge.