Community
Inventor Forum
Welcome to Autodesk’s Inventor Forums. Share your knowledge, ask questions, and explore popular Inventor topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Scale multiple views at once in drawings

15 REPLIES 15
SOLVED
Reply
Message 1 of 16
Anonymous
1874 Views, 15 Replies

Scale multiple views at once in drawings

Title pretty much resumes it all. Is it possible?

15 REPLIES 15
Message 2 of 16
mcgyvr
in reply to: Anonymous


@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
in reply to: mcgyvr

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) 

Message 4 of 16
Yashasvi23481
in reply to: mcgyvr

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

 

Message 5 of 16
mcgyvr
in reply to: Yashasvi23481

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
Message 6 of 16
Anonymous
in reply to: mcgyvr

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?
Message 7 of 16
Curtis_Waguespack
in reply to: Anonymous

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

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?

  

Message 9 of 16

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

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
in reply to: Anonymous

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.

 

Message 12 of 16
johnsonshiue
in reply to: adamTN4MC

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 (johnson.shiue@autodesk.com)
Software Test Engineer
Message 13 of 16
adamTN4MC
in reply to: johnsonshiue

Hi John, how would the formula look?
Message 14 of 16
johnsonshiue
in reply to: adamTN4MC

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 (johnson.shiue@autodesk.com)
Software Test Engineer
Message 15 of 16
adamTN4MC
in reply to: johnsonshiue

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!

Message 16 of 16
johnsonshiue
in reply to: adamTN4MC

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 (johnson.shiue@autodesk.com)
Software Test Engineer

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Technology Administrators


Autodesk Design & Make Report