Lessons

Number Manipulation: Advanced

Advanced numeric functions in AutoLISP play a pivotal role in elevating your programming skills to the next level. These functions are not just mathematical tools; they are the key to unlocking the full potential of CAD designs, allowing for more intricate and precise manipulations. As we journey through today’s lesson, you’ll discover the depth and breadth of these functions and how they intertwine with real-world design challenges.

Whether it’s manipulating angles with trigonometric operations or diving into abstract mathematical paradigms, these tools will empower you to craft solutions that are both efficient and innovative. So, gear up and get ready to delve into the fascinating realm of advanced number manipulation in AutoLISP!


Learning Outcomes

By the end of this lesson, students will be able to:

  • Understand Advanced Numeric Functions: Grasp the significance and application of functions like angle, cos, sin, and more.
  • Apply Mathematical Concepts: Utilize trigonometric, exponential, and logarithmic operations in AutoLISP.
  • Optimize CAD Design: Enhance design processes by applying these advanced number manipulations.
  • Interpret Results Accurately: Analyze the output of these functions and integrate them into larger coding projects.

angle

Definition: Returns the angle (in radians) between two points.

Syntax:

(angle point1 point2)

Example 1:

(setq pt1 ‘(0 0))
(setq pt2 ‘(1 1))
(angle pt1 pt2) ; This will return a value approximating 0.785, which is 45° in radians.

In this example, we’re finding the angle between the origin (0,0) and the point (1,1). The returned value is in radians.

Example 2:

(setq ptA ‘(2 2))
(setq ptB ‘(3 5))
(angle ptA ptB) ; This will return a value based on the angle between these two points in the Cartesian plane.

Here, we determine the angle between two distinct points, (2,2) and (3,5).


cos

Definition: Returns the cosine of an angle (angle is in radians).

Syntax:

(cos angle)

Example 1:

(cos 0) ; This will return 1.

The cosine of 0 radians (or 0°) is 1.

Example 2:

(cos 1.5708) ; This will return a value close to 0.

Here, we’re finding the cosine of approximately π/2 radians, which is close to 0.


sin

Definition: Returns the sine of an angle (angle is in radians).

Syntax:

(sin angle)

Example 1:

(sin 0) ; This will return 0.

The sine of 0 radians (or 0°) is 0.

Example 2:

(sin 1.5708) ; This will return a value close to 1.

This gives us the sine of approximately π/2 radians, which is close to 1.


atan

Definition: Returns the arctangent of a quotient of its arguments.

Syntax:

(atan y x)

Example 1:

(atan 1 1) ; This will return a value approximating 0.785, which is 45° in radians.

Here, the arctangent of the quotient of 1/1 is found, which is 45° in radians.

Example 2:

(atan 2 1) ; This will return a value based on the arctangent of 2/1.

This calculates the arctangent of the quotient of 2/1.


exp

Definition: Returns the exponential value of a number.

Syntax:

(exp number)

Example 1:

(exp 0) ; This will return 1.

The exponential function of 0 is 1.

Example 2:

(exp 1) ; This will return a value close to 2.71828, which is the base of the natural logarithm.

The exponential function of 1 gives the base of the natural logarithm.


log

Definition: Returns the natural logarithm of a number.

Syntax:

(log number)

Example 1:

(log 1) ; This will return 0.

The natural logarithm of 1 is 0.

Example 2:

(log 2.71828) ; This will return a value close to 1.

Here, we’re finding the natural logarithm of approximately the base of the natural logarithm.


sqrt

Definition: Returns the square root of a number.

Syntax:

(sqrt number)

Example 1:

(sqrt 4) ; This will return 2.

The square root of 4 is 2.

Example 2:

(sqrt 9) ; This will return 3.

The square root of 9 is 3.


expt

Definition: Raises a number to a specified power.

Syntax:

(expt number power)

Example 1:

(expt 2 3) ; This will return 8.

This raises 2 to the 3rd power, resulting in 8.

Example 2:

(expt 3 2) ; This will return 9.

Here, 3 is raised to the 2nd power, giving 9.


gcd

Definition: Returns the greatest common divisor of two integers.

Syntax:

(gcd int1 int2)

Example 1:

(gcd 12 15) ; This will return 3.

The greatest common divisor of 12 and 15 is 3.

Example 2:

(gcd 14 28) ; This will return 14.

The greatest common divisor of 14 and 28 is 14.


rem

Definition: Returns the remainder after division.

Syntax:

(rem number divisor)

Example 1:

(rem 10 3) ; This will return 1.

The remainder when 10 is divided by 3 is 1.

Example 2:

(rem 15 4) ; This will return 3.

Here, the remainder when 15 is divided by 4 is 3.


In conclusion, advanced number manipulations are not just essential; they are the backbone of intricate calculations in the AutoLISP language. Equipped with these functions, developers can navigate from the rudiments of simple arithmetic to the intricacies of complex trigonometric functions with ease and precision. Their versatility cannot be overstated. It’s paramount to practice these functions regularly, ensuring they become second nature. This consistent practice is the key to mastering their application, leading to a more profound and nuanced understanding. As you harness these tools, remember that the vast and dynamic world of CAD design eagerly anticipates the innovative solutions and designs you’ll bring to life with your bolstered expertise!