Infinite Loop when Re-scaling Drawing View from 1/100 size

Infinite Loop when Re-scaling Drawing View from 1/100 size

MechMachineMan
Advisor Advisor
466 Views
4 Replies
Message 1 of 5

Infinite Loop when Re-scaling Drawing View from 1/100 size

MechMachineMan
Advisor
Advisor

As the title says, does anyone know why this is making inventor crash/loop infinitely? Or is it simply a limitation to the API?

 

Dim oArea As Double = ThisApplication.ActiveDocument.ActiveSheet.Height * ThisApplication.ActiveDocument.ActiveSheet.Width

Dim oView As DrawingView = ThisApplication.ActiveDocument.ActiveSheet.DrawingViews.Item(1)

oView.Scale = 1/100

Dim oViewArea As Double = oView.Height * oView.Width


If oViewArea < oArea/6
	While oViewArea < oArea/6

	oView.Scale = oView.Scale * 1.1
	oViewArea = oView.Height * oView.Width
	MsgBox("Height " & ThisApplication.ActiveDocument.ActiveSheet.Height & vbLf & _
	  "Width " & ThisApplication.ActiveDocument.ActiveSheet.Width & vbLf & _
	  "Area " & oArea & vbLf & _
	  vbLf & _
	  "View Height " & oView.Height & vbLf & _
	  "View Width " & oView.Width & vbLf & _
	  "View Area " & oViewArea)

	End While
Else
	While oViewArea > oArea/6

	oView.Scale = oView.Scale * 0.9
	oViewArea = oView.Height * oView.Width
	MsgBox("Height " & ThisApplication.ActiveDocument.ActiveSheet.Height & vbLf & _
	  "Width " & ThisApplication.ActiveDocument.ActiveSheet.Width & vbLf & _
	  "Area " & oArea & vbLf & _
	  vbLf & _
	  "View Height " & oView.Height & vbLf & _
	  "View Width " & oView.Width & vbLf & _
	  "View Area " & oViewArea)

	End While
End if

--------------------------------------
Did you find this reply helpful ? If so please use the 'Accept as Solution' or 'Like' button below.

Justin K
Inventor 2018.2.3, Build 227 | Excel 2013+ VBA
ERP/CAD Communication | Custom Scripting
Machine Design | Process Optimization


iLogic/Inventor API: Autodesk Online Help | API Shortcut In Google Chrome | iLogic API Documentation
Vb.Net/VBA Programming: MSDN | Stackoverflow | Excel Object Model
Inventor API/VBA/Vb.Net Learning Resources: Forum Thread

Sample Solutions:Debugging in iLogic ( and Batch PDF Export Sample ) | API HasSaveCopyAs Issues |
BOM Export & Column Reorder | Reorient Skewed Part | Add Internal Profile Dogbones |
Run iLogic From VBA | Batch File Renaming| Continuous Pick/Rename Objects

Local Help: %PUBLIC%\Documents\Autodesk\Inventor 2018\Local Help

Ideas: Dockable/Customizable Property Browser | Section Line API/Thread Feature in Assembly/PartsList API Static Cells | Fourth BOM Type
0 Likes
467 Views
4 Replies
Replies (4)
Message 2 of 5

BrandonBG
Collaborator
Collaborator

I think I see what you are trying to do by getting the scale of the view to an undetermined equilibrium.

 

The problem is that you run the IF < 6 part until possibly  > 6, then the ELSE portion applies, which is confusing.

 

Also, x * 1.1 * 0.9 does not equal x. You get 0.99x.

 

You always want the view to be 1/6 of the sheet, correct?

 

BrandonBG

0 Likes
Message 3 of 5

MechMachineMan
Advisor
Advisor
Just to get it close, then I run another function that changes it to the
neareat standard scale.

--------------------------------------
Did you find this reply helpful ? If so please use the 'Accept as Solution' or 'Like' button below.

Justin K
Inventor 2018.2.3, Build 227 | Excel 2013+ VBA
ERP/CAD Communication | Custom Scripting
Machine Design | Process Optimization


iLogic/Inventor API: Autodesk Online Help | API Shortcut In Google Chrome | iLogic API Documentation
Vb.Net/VBA Programming: MSDN | Stackoverflow | Excel Object Model
Inventor API/VBA/Vb.Net Learning Resources: Forum Thread

Sample Solutions:Debugging in iLogic ( and Batch PDF Export Sample ) | API HasSaveCopyAs Issues |
BOM Export & Column Reorder | Reorient Skewed Part | Add Internal Profile Dogbones |
Run iLogic From VBA | Batch File Renaming| Continuous Pick/Rename Objects

Local Help: %PUBLIC%\Documents\Autodesk\Inventor 2018\Local Help

Ideas: Dockable/Customizable Property Browser | Section Line API/Thread Feature in Assembly/PartsList API Static Cells | Fourth BOM Type
0 Likes
Message 4 of 5

BrandonBG
Collaborator
Collaborator

How about just using math to set it to 1/6?

 

oView.Scale = oView.Scale * ((oArea/6)/(oViewArea))

 

That should get you to exactly 1/6, I think . . . ?

 

BrandonBG

0 Likes
Message 5 of 5

MechMachineMan
Advisor
Advisor
That makes way more sense haha. Thanks!

--------------------------------------
Did you find this reply helpful ? If so please use the 'Accept as Solution' or 'Like' button below.

Justin K
Inventor 2018.2.3, Build 227 | Excel 2013+ VBA
ERP/CAD Communication | Custom Scripting
Machine Design | Process Optimization


iLogic/Inventor API: Autodesk Online Help | API Shortcut In Google Chrome | iLogic API Documentation
Vb.Net/VBA Programming: MSDN | Stackoverflow | Excel Object Model
Inventor API/VBA/Vb.Net Learning Resources: Forum Thread

Sample Solutions:Debugging in iLogic ( and Batch PDF Export Sample ) | API HasSaveCopyAs Issues |
BOM Export & Column Reorder | Reorient Skewed Part | Add Internal Profile Dogbones |
Run iLogic From VBA | Batch File Renaming| Continuous Pick/Rename Objects

Local Help: %PUBLIC%\Documents\Autodesk\Inventor 2018\Local Help

Ideas: Dockable/Customizable Property Browser | Section Line API/Thread Feature in Assembly/PartsList API Static Cells | Fourth BOM Type
0 Likes