Scale of detail view scripting


#1

hi!
is there a rhinoscript command can keep the detail view scale.
i need to measure a distance between two points derectly in detail view. for these i need to have the scale of the detail view, for calculate the real distance.
thank you!


#2

@onlyforpeace,

if you’re using python there is rs.DetailScale() which gets the current page to model scale ratio:

import rhinoscriptsyntax as rs

detail = rs.GetObject("Select detail", rs.filter.detail)
if detail: 
    print rs.DetailScale(detail)

_
c.


#3

Normally this info is also available in the Properties panel if you select the detail… --Mitch


#4

no possible with rhinoscript so…


#5

Correct. I don’t see it in the Help for Rhinoscript for Rhino V6 either, @dale is there a reason why this isn’t implemented, or just an oversight?

–Mitch


#6

You may also use Rhino.XformWorldToLayout to get the distance with detail scale. Below is an example which i tested only in a non perspective detail view. I’m not sure how to make it work in perspective.

XformWorldToLayout.rvb (1.2 KB)

_
c.


(Dale Fugier) #7

Yep…

https://mcneel.myjetbrains.com/youtrack/issue/RH-41715

– Dale


(Brian Gillespie) #8

RH-41715 is fixed in the latest WIP


(Declan Halpin) #9

Hi, I’m trying to implement this, and having some trouble. Ultimately I’d like to have ALL details ZoomExtents, then set DetailScale. However, just playing with DetailScale and it doesn’t seem to be recognized as a module/method (function?). What is wrong with this script? Is this still not available through RhinoScript?

******EDIT: I just saw Brian said it’s fixed in the WIP, so I guess V5 is the problem?

Call Main()
Sub Main()
	Dim strLayout, arrDetails, strDetail
	strLayout = "Layout 1"
	Rhino.CurrentLayer("Drawing Items::Layout 1")
	If Rhino.IsLayout(strLayout) Then
		arrDetails = Rhino.DetailNames(strLayout, False)
		For Each strDetail In arrDetails
			DetailScale strDetail, 1.0, 1.0
		Next
	End If
End Sub

#10

@declan, not sure if this helps but shouldn’t this line:

DetailScale strDetail, 1.0, 1.0

be written like this:

Rhino.DetailScale strDetail, 1.0, 1.0

The method Rhino.DetailScale is not available in Rhino 5.
_
c.