Sep-13-2019, 09:51 PM
Apologies for the post mess. I'm now getting the hang of posting here. Mods fix as necessary.
The code for the script:
The code for the script:
import Rhino import rhinoscriptsyntax as rs import scriptcontext as sc def setDetailScale(): """ this script changes the scale of a detail to a selected scale from a listbox version 1.0 www.studiogijs.nl """ detail = rs.GetObject("select detail", filter = 32768) if not detail: return detail = rs.coercerhinoobject(detail) if not detail.DetailGeometry.IsParallelProjection: return #modify the scale items = ['1/16"','1/8"','1/4"','3/8"','1/2"','3/4"','1-1/2"','1/6"','1:1'] scale = rs.ListBox(items, "Select scale", "Scale detail") if not scale: return if scale == '1/16"=1\'-0"': intScale = 120 elif scale == '1/8"-1\'-0"': intScale = 96 elif scale == '1/4"': intScale = 48 elif scale == '3/8"': intScale = 36 elif scale == '1/2"': intScale = 24 elif scale == '3/4"': intScale = 12 elif scale == '1-1/2"': intScale = 8 elif scale == '1/6"': intScale = 6 elif scale == '1:1': intScale = 1 detail.DetailGeometry.SetScale(intScale, sc.doc.ModelUnitSystem, 1, sc.doc.PageUnitSystem) #lock detail items = ["YES","NO"] lock = rs.ListBox(items,"Lock Detail/s","YES","NO") if lock == "YES": detail.DetailGeometry.IsProjectionLocked = True elif lock == "NO": detail.DetailGeometry.IsProjectionLocked = False detail.CommitChanges() sc.doc.Views.Redraw() if __name__ == '__main__': setDetailScale()