Scale to A3 conversion

Check out my previous post here:

Based on what I learned so far, I’ve managed to make a few custom scripts that helps me a lot.

My new dream is this:
I have different drawing in A0,A1,A2 and A3
On some drawings the scale is 1:100 and on others its 1:50

Some of the drawings will be printed on A3 paper in addition to it’s original paper. Based on this there is a project parameter called NTI_Scale (The scale of the drawing if its printed on A3 paper)

Is there a way to read scale(shared parameter “Skala” or built in paramater “Scale”) and papersize (shared parameter “Orginalformat”), compare them and write the proper A3 scale on the drawings?


This is as far as I’ve come, can’t understand how to do the conversion or how to get the number/factor from the scale.

(In case some are not familiar with the conversion between A sizes, it’s the square root of 2)
Sizes rounded to whole numbers:

A0 1:50 printed on A3 = 1:141
A1 1:50 printed on A3 = 1:100
A2 1:50 printed on A3 = 1:71
A3 1:50 printed on A3 = 1:50

A0 1:100 printed on A3 = 1:283
A1 1:100 printed on A3 = 1:200
A2 1:100 printed on A3 = 1:141
A3 1:100 printed on A3 = 1:100

Hi,
try this:

import clr
clr.AddReference(‘ProtoGeometry’)
from Autodesk.DesignScript.Geometry import *
#The inputs to this node will be stored as a list in the IN variables.
dataEnteringNode = IN
a = IN[0]
b = IN[1]
c =

for i,j in zip(a,b):
if i == “1:50” and j == “A0”: c.append(“1:141”)
elif i == “1:50” and j == “A1”: c.append(“1:100”)
elif i == “1:50” and j == “A2”: c.append(“1:71”)
elif i == “1:50” and j == “A3”: c.append(“1:50”)
elif i == “1:100” and j == “A0”: c.append(“1:283”)
elif i == “1:100” and j == “A1”: c.append(“1:200”)
elif i == “1:100” and j == “A2”: c.append(“1:141”)
elif i == “1:100” and j == “A3”: c.append(“1:100”)
#Assign your output to the OUT variable.
OUT = c

The attached graph should do what you want




Hope it helps

Darren

DRAWING SCALE TO PRINTED SCALE CONVERSION.dyn (16.2 KB)

1 Like