|
Here's a nice query from Tjhb that's modified to include a scale input. Maybe this could be will work for you. Edit: Ah, I see now that the scale function doesn't work for irregular areas. --SQL PARAMETERS [Copies] SINGLE, [Direction] DOUBLE, [Offset] DOUBLE, [Scale] DOUBLE; INSERT INTO [Drawing] ([Geom (I)]) SELECT Scale(MoveVertically(MoveHorizontally([ID], [N] * [dX]), [N] * [dY]), [Scale]) FROM [Drawing] AS [D] INNER JOIN (SELECT [Digit 4] * 1000 + [Digit 3] * 100 + [Digit 2] * 10 + [Digit 1] + 1 AS [N] FROM (VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9) NAMES ([Digit 4])) CROSS JOIN (VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9) NAMES ([Digit 3])) CROSS JOIN (VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9) NAMES ([Digit 2])) CROSS JOIN (VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9) NAMES ([Digit 1]))) ON [D].[Selection (I)] AND [N] <= [Copies] CROSS JOIN (VALUES ([Offset] * Sin(Deg2Rad([Direction])), [Offset] * Cos(Deg2Rad([Direction]))) NAMES ([dX], [dY]));
|