Scale multiple views at once in drawings

Scale multiple views at once in drawings

Anonymous
Not applicable
3,352 Views
15 Replies
Message 1 of 16

Scale multiple views at once in drawings

Anonymous
Not applicable

Title pretty much resumes it all. Is it possible?

0 Likes
Accepted solutions (1)
3,353 Views
15 Replies
Replies (15)
Message 2 of 16

mcgyvr
Consultant
Consultant

@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. 

 



-------------------------------------------------------------------------------------------
Inventor 2023 - Dell Precision 5570

Did you find this reply helpful ? If so please use the Accept Solution button below.
Maybe buy me a beer through Venmo @mcgyvr1269
Message 3 of 16

Anonymous
Not applicable

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) 

0 Likes
Message 4 of 16

Yashasvi23481
Collaborator
Collaborator

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

 

0 Likes
Message 5 of 16

mcgyvr
Consultant
Consultant

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. 😉

 



-------------------------------------------------------------------------------------------
Inventor 2023 - Dell Precision 5570

Did you find this reply helpful ? If so please use the Accept Solution button below.
Maybe buy me a beer through Venmo @mcgyvr1269
0 Likes
Message 6 of 16

Anonymous
Not applicable
No worries, some times what seems to be ovious in my head is not for others
🙂

Would it be possible through an ilogic rule though?
0 Likes
Message 7 of 16

Curtis_Waguespack
Consultant
Consultant
Accepted solution

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
Message 8 of 16

andrewg95W6A
Explorer
Explorer

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?

  

0 Likes
Message 9 of 16

nmaravalN6QFT
Participant
Participant

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

 

Message 10 of 16

nmaravalN6QFT
Participant
Participant

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
Message 11 of 16

adamTN4MC
Observer
Observer

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.

 

0 Likes
Message 12 of 16

johnsonshiue
Community Manager
Community Manager

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!



Johnson Shiue ([email protected])
Software Test Engineer
0 Likes
Message 13 of 16

adamTN4MC
Observer
Observer
Hi John, how would the formula look?
0 Likes
Message 14 of 16

johnsonshiue
Community Manager
Community Manager

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!



Johnson Shiue ([email protected])
Software Test Engineer
0 Likes
Message 15 of 16

adamTN4MC
Observer
Observer
Hi John,

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

If I put 1/15 fraction in the ilogic rule it puts 0.07 : 1 in the label, I want to make it 1 : 15 show in the label

Many Thanks!

0 Likes
Message 16 of 16

johnsonshiue
Community Manager
Community Manager

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!

 



Johnson Shiue ([email protected])
Software Test Engineer