Based on user feedback, NCLab’s CAD language PLaSM was simplified and its original functional programming style was changed to standard procedural programming. We also eliminated as many brackets as possible and made the usage of some commands more intuitive. The changes go across the entire language. For example, the following original PLaSM command translates an object A by 0.5, 0.6 and 0.7 in the x, y and z directions, respectively:

**A = T([1, 2, 3])([0.5, 0.6, 0.7])(A)**

Now this is done by just typing

**A = T(A, 0.5, 0.6, 0.7).**

The following original PLaSM command rotates an object B by PI/4 about the y axis:

**B = R([1, 3])(PI/4)(B)**

Here [1, 3] is the pair of axes that determine the axis of rotation, in a space-dimension-independent form. However, most NCLab users do not need to work in higher dimensions than in 3D, where providing one axis of rotation is enough, so the last command became simpler:

**B = R(B, 2, PI/4)**

The original PLaSM required explicit usage of subdivision parameters for curves and curved surfaces. For example, to define a cylinder of radius R and height H with 64 subdivisions, one typed

**C = CYLINDER([R, H])(64)**

Now this is simpler:

**C = CYLINDER(R, H)**

If the user needs a different subdivision than 64, say 128, then an optional third argument can be included.

11/26/2023