Programming Capabilities

Discussion of MicroSurvey CAD related issues and questions.

Moderators: Brian Sloman, Jason Poitras, James Johnston

Post Reply
Posts: 1
Joined: Fri Feb 06, 2004 9:26 am
Location: West Palm Beach, FL

Programming Capabilities

Post by dvladvct » Fri Feb 06, 2004 9:45 am

My employer is considering this product(waiting on a trial cd, apparently the download isn't working?), and I have a few questions regarding programming capabilities.

I read that one can use lisp routines with this program. Is this auotlisp and does it include use of the visual lisp extensions? Are .dcl, .arx, or vba files supported? Also is it possible to programitically access and manipulate the point database?

Brent Shirley

Vincent Popish
Posts: 129
Joined: Thu Nov 14, 2002 11:24 am
Location: Grand Junction, CO


Post by Vincent Popish » Fri Feb 06, 2004 11:33 am

Yes, it is very close to autolisp, I have written/adapted a number of lisp routines over the years to work with mscad. There is a list of the differences between the lisp routines, even a program to help the translation. Never tried any of the other stuff, I'll let someone else commnet on that.
Vince Popish


Post by Guest » Sat Feb 07, 2004 11:33 am

I have developed many customized button, menus, dialogs, and complex lisp functions for MSCAD. Since MSCAD is built upon the FelixCAD/PowerCAD engine, I used the following document as a primary reference: ... werCAD.pdf

I also use the Microsurvey programming extensions: ... ctions.htm

Here's a simple lisp function you can use to get you started. It simply computes a cumulative (or running) distance total as you click in the drawing. Copy this to a file called rd.lsp and save it in the COMMON folder under MSCAD. To load it, type (load "rd") at the MSCAD command line, then enter RD to run it.

(defun c:rd (/ os p1 p2 d)
(prompt "\nRunning Distance Calculator...")
(setq os (getvar "osmode"))
(setvar "osmode" 41)
(setq p1 (getpoint "\nFirst Point: "))
(setq p2 (getpoint p1 "Next Point: "))
(grdraw p1 p2 2 1)
(setq d (distance p1 p2))
(prompt (strcat "\nRunning Distance: " (rtos d 2 2)))
(setq p1 (getpoint p2 "\nNext Point: "))
(command "redraw")
(setq d (+ (distance p1 p2) d))
(prompt (strcat "\nRunning Distance: " (rtos d 2 2)))
(grdraw p1 p2 2 1)
(setq p2 p1)
(command "redraw")
(prompt (strcat "\nTotal Distance: " (rtos d 2 2)))
(setvar "osmode" os)

User avatar
Darcy Detlor
Site Admin
Posts: 205
Joined: Tue Oct 29, 2002 10:14 am
Location: West Kelowna, BC

Download problems?

Post by Darcy Detlor » Sat Feb 07, 2004 12:47 pm


At the start of this topic, the poster indicated that he/she was having problems with downloading. Please send me an email if you have any problems downloading.

We have two servers now to choose from. More will be added in time.

The lisp programming extensions were added several years ago to make it easier for power users to work with the MicroSurvey coordinate and connectivity databases. Please send me an email if we could add something to the programming tools to make your job easier.

Thank you,
Darcy Detlor,
MicroSurvey Software Inc.

Post Reply