CADLISP函数

合集下载

一个在CAD中标注坐标的LISP

一个在CAD中标注坐标的LISP

一个在CADxx标注坐标的LISP使用方法:先把下面的代码复制,再打开CAD,工具-AutoLIST-VISUAL LISP编辑器-新建-粘贴-保存-退出再之就工具-AutoLIST-加载应用程序,找到你保存的那个东东,加载,关闭退出,输入ZBBZ就可以啦!!!!![复制到剪切板][ - ]代码:(defun C:zbbz( / zb gd cld osm )(setq osm (getvar"osmode"))(setvar "osmode" 33)(setq gd (getreal "指定标注文字高度:>"))(if (= gd nil) (setq gd0.5))(while (setq zb (getpoint "指定坐标点:"))(setq cld(getpoint zb "指定文字插入点:"))(entmake (list'(0 . "LINE")'(67 . 0)'(8 . "0")(list 10 (car zb) (cadr zb) 0)(list 11 (car cld) (cadr cld) 0)'(2100.00.01.0)))(entmake (list'(0 . "text")(list 10 (+ (car cld) gd) (car(cdr cld)) ) (cons 40 gd)(cons 1 ( strcat "X=" (rtos (cadr zb) 2 3))) '(50 . 0)))(entmake (list'(0 . "text")(list 10 (+ (car cld) gd)(- (car(cdr cld)) (+ gd (/ gd 3)) ))(cons 40 gd) (cons 1 (strcat "Y="(rtos (car zb) 2 3)))'(50 . 0))0G&B4v$L.r5o3_))(setvar "osmode" osm) (princ))。

CAD画缓和曲线lisp程序

CAD画缓和曲线lisp程序

CAD画缓和曲线lisp程序CAD中画缓和曲线,首先复制本文☆后面的源程序保存至cad安装目录的SUPPORT文件夹,保存类型为.lsp可以随便复制一个SUPPORT文件夹内的lsp 文件,然后替换本文的程序。

打开CAD后,输入appload回车,找到你保存的缓和曲线lsp程序,点击加载,然后就可以画缓和曲线了。

首先,要画出缓和曲线的两条直线,然后输入HH回车,按提示完成缓和曲线。

注:本程序,缓和曲线段拟合长度为0.4m,如需更改拟合长度,将程序的第8行(repeat(FIX(/Ls0.4))及9行(setql(+l(/Ls(FIX(/Ls0.4))))中的0.4修改即可。

☆;;多义线摹拟缓和曲线。

;;输入起止直线、半径、缓和曲线长或设计车速。

;;命令:HH(defun_p()(setql0)(mand\(mand\(repeat(FIX(/Ls0.4))(setql(+l(/Ls(FIX(/Ls0.4))))x(+(-l(/(*lllll)40CC))(/(*lllllllll)3456CCCC))y(*id__(+(-(/(*lll)6C)(/(*lllllll)336CCC))(/(*lllllllllll)42240CCCCC))));setq(mand(listxy0)));repaet);mand(setqpt5(trans(listxy0)10)));_p(defunll_v()(setqV(getreal\Ls1(*V0.85)Ls2(/(*0.0357VVV)R)Ls(maxLs1Ls2(/R9))Ls(*(fix(/Ls10))10.0));setq(if(>LsR)(setqLsR))(ll_d));ll_v(defunll_d()(setqos(getvar\(setvar\(setqC(*LsR)q(-(+(-(/Ls2)(/(*LsLsLs)240RR))(/(*LsLsLsLsLs)34560RRRR))(/(*LsLsLsLsLsLsLs)8386560RRRRRR))pt1(cdr(assoc10(entget(carp1))))pt2(cdr(assoc11(entget(carp1))))pt10(polarpt1(anglept1pt2)(/(distancept1pt2)2))pt3(cdr(assoc10(entget(carp2))))p t4(cdr(assoc11(entget(carp2))))pt20(polarpt3(anglept3pt4)(/(distancept3pt4)2))p(+(-(/(*LsLs)24R)(/(*LsLsLsLs)2688RRR))(/(*LsLsLsLsLsLs)506880RRRRR) )jd(interspt1pt2pt3pt4nil)alf1(anglept10jd)alf2(anglept20jd)alf(-(anglejdpt20)alf1));setq(if(or(>alfpi)(and(alf(-0pi))))(progn(setqid__-1)(if(>alfpi)(setqalf(-(+pipi)alf))(setqalf(absalf))));progn(progn(setqid__1)(if((abs(distancejdpt1))(abs(distancejdpt2)))(setqptt1pt1)(setqptt1pt2));if(setqptt2(polarjdalf1(-0x1)))(thhp1ptt110)(thhp1ptt211)(if(>(abs(distancejdpt3))(abs(distancejdpt4)))(setqptt3pt3)(setqptt3pt4));if(setqptt4(polarjdalf2(-0x1)))(thhp2ptt310)(thhp2ptt411)(if(=id__1)(mand\(setqalfd(angfalf))(setvar\(mand\(mand\偏角=\(mand\(mand\(strcat\半径=\(mand\(strcat\切线长=\(mand\(strcat\曲线长=\(mand\(strcat\外距=\(mand\(strcat\缓曲长=\);ll_d(defunangf(alf)(setqalff(angtosalf14)n1kk(strlenalff))(repeatkk(setqalfn(substralffn1))(if(=alfn\(setqnnn));if(setqn(+n1)));repeat(strcat(substralff1(-nn1))\);angf(defunc:hh(/p1p2pt1pt2pt3pt4pt5pt6pt10pt20id__RVLsEp3r1xylx0x1Cjdalfalf1al f2qpClLs1Ls2)(mand\(setqp1nilp2nil)(while(=p1nil)(setqp1(entsel\拾取第一条直线:\(redraw(carp1)3)(while(=p2nil)(setqp2(entsel\拾取第二条直线:\(redraw(carp2)3)(initget1)(setqR(getdist\请输入圆曲线半径R:\(initget1\(setqp3(getdist\输入缓和曲线长度(Ls)或[设计速度(V)]:\(if(=p3\(princ));eline (defunthh(lenpth)(setqen_data(entget(carlen))old_data(assochen_data)new_data(conshpt)en(substnew_dataold_dataen_data));setq(entmoden));thh。

Auto CAD 二次开发 Lisp 字典

Auto CAD 二次开发 Lisp 字典
(exp num) 三. 实例
(exp 1.0) ; ; ; 返回2.71828 (exp 2.0) ; ; ; 返回9.02501 (exp -0.4) ; ; ; 返回0.67032
expt
一. 功能 该函数返回以数number为底数的power次幂的值。
二. 格式 (expt number power)
三. 说明 调用此函数时﹐如果提供的两个变元都是整数﹐结果也是整数;否
则﹐结果是实数。 四. 实例
(expt 2 4) ; ; ; 返回16 (expt 3.0 2.0) ; ; ; 返回9.0
fix
一. 功能 截尾取整函数。
二. 格式 (fix num)
三. 说明 fix截去数num的小数部分﹐而返回它的整数部分。 如果num大于最大可能的整数(在32位平台上最大可能整数是
cos
一. 功能 返回以弧度表示的一个角度的余弦值。
二. 格式 (cos angle)
三. 说明 四. 实例
(cos 0.0) ; ; ; 返回1.0 (cos pi) ; ; ; 返回-1.0
exp
一. 功能 该函数返回e的次幂num的值﹐e为自然对数的底数﹐即
e=2.718282…。exp函数总是返回一个实型数。 二. 格式
atan
一. 功能 返回一个数的反正切值,单位为弧度。
二. 格式 (atan num1[num2])
三. 说明 调用atan函数时,若仅提供变元num1,则本函数返回数num1的反正
切值,单位为弧度。如果提供了num1和num2这两个变元,atan函数返回 num1/num2的反正切值,单位为弧度。如果num2是零,则返回的角度为 正或为负的1.570796弧度(+90度或-90度),取决于num1是正还是负。所 返回的角度范围是-Pi/2至+Pi/2弧度。 四. 实例

AutoCADLISP基本知识及函数

AutoCADLISP基本知识及函数

AutoCADLISP基本知识及函数1.lisp数据类型INT 整型REAL 实数型(最多有6位小数)STR 字符串型2.预定义符号nil 尚无定义或者falseT 常量PAUSE 暂停PI 常量π3.赋值函数(setq x 1.5 y 20 p "center");给x、y、p赋值,返回值center。

4.查询变量的值和数据类型command:!a或者直接输入a;返回a的值command:(type a)或者直接输入(type a);返回a的数据类型5.quote函数(quote(10 20 ...))(quote(10 20))或者'(10 20);表示禁止对表求值,返回(10 20) 定义二维点(setq p '(10 20))6.定义函数(defun 函数名(变元.../局部变量...) 表达式... )7.调用函数(函数名变量)8.调用CAD命令(command "autocad命令" "所需数据" ...)如绘制圆心(2,4),半径为5的圆(command "circle" "2,4" 5)或者(command "circle" '(2 4) 5)9.画矩形(defun c:rect1(/ p1 p2 p3 p4)(setq p1 (getpoint "\n输入矩形的一个角点"))(setq p3 (getcorner p1 "\n输入矩形的另一个角点:"))(setq p2 (list(car p3) (cadr p1)))(setq p4 (list(car p1) (cadr p3)))(command "pline" p1 p2 p3 p4 "c"))10.cond函数多条件判断(cond(测试表达式1 结果表达式1)(测试表达式2 结果表达式2) ...);从第一个子表起,测试每个子表的测试表达式直至有一个子表测试表达式成立,计算该子表的结果表达式并返回这个结果表达式的值。

AutoCADLisp之数据类型转换函数详情老伙计

AutoCADLisp之数据类型转换函数详情老伙计

AutoCADLisp之数据类型转换函数详情老伙计刚刚接触Lisp编程的小哥哥小姐姐们不知道如何把变量里面的数字变为字串符,或者把字串符转换成数字,或者数字四舍五入。

下面贴出各个函数的使用和功能。

1、整型转换为字符串的函数 (itoa int)例子: (itoa -2021) 返回“-2021”说明:把整型常数、变量或表达式的值转换为字符串,注意参数必须是整数,函数返回值中不带"+"号。

2、字符串转换为整数的函数 (atoi 字符串)例子:(atof "55.9") 返回 55 ,(atof "1997") 返回 1997说明:把字符串常数、变量或表达式转换为整数。

该函数从头扫描字符串,把前面的整数取出作为函数值返回。

如果字符串不是以数字打头,函数返回值为03、字符串转换为实数的函数 (atof 字符串)例子:(atof "197.1") 返回 197.1 ,(atof "6") 返回 6.0说明:把字符串常数、变量或表达式转换为实数。

该函数从头扫描字符串,把前面的数取出作为函数值返回。

如果字符串不是以数字打头,函数返回值为0.0。

4、整型转换为实型的函数 (float n)例子:(float 6) 返回 6.0(float 6.75) 返回 6.75说明:把整型数据转换为实型。

参数可以为整数或实数,函数返回值为实数。

5、实型转换为整型的函数 (fix n)例子:(fix 6) 返回 6(fix 6.7) 返回 6说明:把常数、变量、表达式的值取整。

(1)参数可以为整数或实数,函数返回值为整数。

(2)取整是截断小数部分,而不是四舍五入。

6、整数和实数格式化函数 (rtos number [mode] [precision])解释说明:此函数将依据所给定的mode、precision、AutoCAD 的UNITMODE 系统变量及DIMZIN尺寸变量来返回一字符串以表示number。

autocad二次开发LISP函数(备用)

autocad二次开发LISP函数(备用)

autocad⼆次开发LISP函数(备⽤);;;保存为DXF⽂件(defun c:save_dxf (/)(setq filepath (strcat (getvar "dwgprefix")"转换"(substr (getvar "dwgname")1(- (strlen (getvar "dwgname")) 4))".dxf"))(command "save" filepath "16" "")(princ)(princ "\n⽂件保存到:")(princ filepath)(princ));;根据⽐例尺计算出图范围中⼼(defun get_extent_center (scale paper_w paper_h / xn yn);;scale⽐例尺 ,paper_w paper_h出图的宽和⾼(setq re nil)(setq xn (* (/ (* paper_w scale) 1000.00) 0.5))(setq yn (* (/ (* paper_h scale) 1000.00) 0.5))(setq center (list xn yn))(setq re center));;;根据拉框范围计算⽐例尺(defun calculate_scale (p1 p2 paper_w paper_h /);;p1,p1框的⾓点,paper_w paper_h出图的宽和⾼(setq re nil)(setq scale(*100(ceil(/ (* 1000(sqrt(+ (* (- (car p1) (car p2)) (- (car p1) (car p2)))(* (- (cadr p1) (cadr p2)) (- (cadr p1) (cadr p2))))))(* 100 (sqrt (+ (* paper_w paper_w) (* paper_h paper_h))))))))(setq re scale));;;改变块的⽐例(defun c:modify_scale (/)(vl-load-com)(setq en (car (entsel))) ;;取块(setq scale (getreal)) ;;取⽐例(setq ename (vlax-ename->vla-object en))(setq xscale (vla-get-xscalefactor ename)yscale (vla-get-yscalefactor ename)zscale (vla-get-zscalefactor ename))(if (> xscale 0)(setq xscale scale)(setq xscale (- scale)))(if (> yscale 0)(setq yscale scale)(setq yscale (- scale)))(vla-put-xscalefactor ename xscale)(vla-put-yscalefactor ename yscale)(vla-put-zscalefactor ename zscale));;向上取整函数(defun ceil (number / int_number)(setq re nil)(setq int_number (fix number))(if (/= (- int_number number) 0)(setq int_number (+ 1 int_number)))(setq re int_number));;;修改块的Z坐标(defun c:set_hight (/ i en enlist key h ss ptx pty) (setq h (getreal "\n输⼊新标⾼:"))(if (= h nil)(setq h 0))(setq key (getreal "\n输⼊阀值:"))(if (= key nil)(setq key 0))(setq ss (ssget "x" '((0 . "insert") (8 . "*"))))(setq i 0sslen (sslength ss))(while (< i sslen)(progn(setq en (ssname ss i))(setq elist (entget en))(if (> (caddr (cdr (assoc 10 elist))) key)(progn(setq ptx (cadr (assoc 10 elist)))(setq pty (caddr (assoc 10 elist)))(setqelist (subst (cons 10 (list ptx pty h))(assoc 10 elist)elist))(entmod elist)))(setq i (+ i 1))))(princ "\n共处理")(princ (+ i 1))(princ "个要素。

五个实用的AutoCAD的lisp程序

五个实用的AutoCAD的lisp程序

五个实用的AutoCAD的lisp程序1、计算CAD图形中所有线段总长度(加载后只需框选所有线段便可得出这些线段的总长度)(defun c:LL ()(setvar "cmdecho" 1)(setq en (ssget (list '(0 . "spline,arc,line,ellipse,LWPOLYLINE"))))(setq i 0)(setq ll 0)(repeat (sslength en)(setq ss (ssname en i))(setq endata (entget ss))(command "lengthen" ss "")(setq dd (getvar "perimeter"))(setq ll (+ dd ll))(setq i (1+ i)))(princ "所选线条总长为:")(princ ll)(princ))2、标注CAD图形中所有线段(加载后只需框选所有线段便可得标注这些线段)(defun c:LLL ()(COMMAND "UCS" "")(setvar "cmdecho" 1)(SETVAR "OSMODE" 0)(setq AcadObject (vlax-get-acad-object)AcadDocument (vla-get-ActiveDocument Acadobject)mSpace (vla-get-ModelSpace Acaddocument));;选取需要测量的样条曲线、圆弧、直线、椭圆(setq en (ssget (list '(0 . "spline,arc,line,ellipse,LWPOLYLINE"))))(setq i 0);;获取系统参数textsize(setq shh (getvar "textsize"))(setq str_hh (strcat "\n文字高度 <" (rtos shh 2) ">: "))(setq hh (getdist str_hh))(while hh(setvar "textsize" hh)(setq hh nil));;输入标注文字高度;;循环开始(repeat (sslength en)(setq ss (ssname en i))(setq endata (entget ss))(command "lengthen" ss "")(setq dd (getvar "perimeter"))(princ (strcat "\n长度=" (rtos dd 2)));;寻找代表图层的字符串(setq aa (assoc 0 endata));;获取图层名称(setq aa1 (cdr aa));;判断线条种类(cond((= aa1 "SPLINE");;如果是spline(progn(setq arcObj (VLAX-ENAME->VLA-OBJECT ss))(setq startPnt1 (vla-get-ControlPoints arcObj))(setq p1(vlax-safearray->list (vlax-variant-value startPnt1)) )(setq x1 (car p1))(setq y1 (cadr p1))(setq z1 (caddr p1))(setq pp1 (list x1 y1 z1))(repeat (- (/ (length p1) 3) 1);;循环,寻找最后一个控制点(setq p1 (cdddr p1))(setq x2 (car p1))(setq y2 (cadr p1))(setq z2 (caddr p1)))(setq pp2 (list x2 y2 z2))))((= aa1 "LWPOLYLINE");;如果是LWPOLYLINE(progn(setq arcObj (VLAX-ENAME->VLA-OBJECT ss)) (setq startPnt1 (vla-get-Coordinates arcObj)) (setq p1(vlax-safearray->list (vlax-variant-value startPnt1)) )(setq x1 (car p1))(setq y1 (cadr p1))(setq z1 (caddr p1))(setq pp1 (list x1 y1 z1))(repeat (- (/ (length p1) 3) 1);;循环,寻找最后一个控制点(setq p1 (cdddr p1))(setq x2 (car p1))(setq y2 (cadr p1))(setq z2 (caddr p1)))(setq pp2 (list x2 y2 z2))))(t;;如果是其他种类线条(progn(setq arcObj (VLAX-ENAME->VLA-OBJECT ss)) (setq startPnt1 (vla-get-StartPoint arcObj));;获取起点(setq endPnt1 (vla-get-EndPoint arcObj));;获取终点(setq pp1(vlax-safearray->list (vlax-variant-value startPnt1)))(setqpp2 (vlax-safearray->list (vlax-variant-value endPnt1)) ))))(setq x1 (car pp1))(setq y1 (cadr pp1))(setq z1 (caddr pp1))(setq x2 (car pp2))(setq y2 (cadr pp2))(setq z2 (caddr pp2))(setq x (/ (+ x1 x2) 2))(setq y (/ (+ y1 y2) 2))(setq z (/ (+ z1 z2) 2))(setq pt (list x y z));;取得线段两端的中点(setq ang (angle pp1 pp2));;获取角度(if (> (* (/ ang pi) 180) 180)(setq ang (+ ang pi)))(command "text""j""bc"pt""(* (/ ang pi) 180)(strcat "" (rtos dd 2))"")(setq i (1+ i)))(prin1))(prompt "\n <>在图中直接写出长度") (prin1)3、连续打断程序(defun c:br1 ()(command "break" pause "f" pause "@"))4、将CAD文字导入Excel表格(defun c:Q2()(setq ffn (getfiled "写出文件" "" "xls" 1))(princ "\n选取文字...")(setq ss (ssget))(setq ff (open ffn "w"))(setq i 0)(repeat (sslength ss)(setq ssn (ssname ss i))(setq ssdata (entget ssn))(setq sstyp (cdr (assoc 0 ssdata)))(if (or (= sstyp "TEXT") (= sstyp "MTEXT"))(progn(setq txt (cdr (assoc 1 ssdata)))(princ txt ff)(princ "\n" ff)))(setq i (1+ i)))(close ff)(princ (strcat "\n写出文件: " ffn))(prin1))5、删除带颜色图元以下程序在别人的贴子里贴过.为了说明问题,今天再贴一次。

lisp函数大全详解

lisp函数大全详解

lisp函数大全详解lisp函数大全详解AutoLISP提供了大量的预定义函数。

若将函数名(大小写都可)作为表中的第一个元素函数变元(若有的话)作为表中后面的元素,就可以调用那个函数。

本章按字母顺序列出AutoLISP所有基本函数。

用户会发现其中许多函数都是标准函数,可在LISP程序设计语言中找到。

还有一些函数是由AutoCAD提供的且专用于交互图形环境。

1 FLATLAND 系统变量--与老版本的兼容性AutoLISP版本10支持AutoCAD的最新增强型三维图形功能,则时继续保证与AutoCAD 老版本的兼容性。

FLATLAND系统变量就是用来控制该兼容性的。

当FLATLAND为零时,实现新三维功能;否则各函数操作与AutoLISP版本9的一样。

FLATLANDR的设置作用于下列AutoLISP函数:DISTANCE GRREAD POLARENTGET INITGET TBLNEXTGETDIST INTERS TBLSEARCHGETPOINT OSNAP在各函数说明中,已注明FLATLAND对上述函数起作用的方式。

2 (+ 《数》《数》。

)这个函数返回所有《数》的总和。

其中的《数》可以是整型或实型的。

如果所有的《数》都是整数,其结果也是整数;如果其中有一个是实型的,那么其它整型数将转换为实型数结果将是实型数。

例如:(+ 1 2)returns 3(+ 1 2 3 4.5)returns 10.5(+ 1 2 3 4.0)returns 10.03 (- 《数》《数》。

)这个函数把第一个《数》减去第二个《数》,返回它们的差。

如果给定的《数》多于两个,。

AUTOCAD二次开发齿轮代码LISP

AUTOCAD二次开发齿轮代码LISP

(defun c:jkxcl()(setq os(getvar "osmode"))(setvar "osmode" 0)(setq m(getreal"输入模数:M=")z(getint"输入齿数:Z=")h(getreal"输入齿轮宽度:H=")zj(getreal"输入齿轮轴径:ZJ=")lf(getreal"输入轮辐厚度(无轮辐结构时输入齿轮宽度):LF=") )(if (> h lf) (progn(setq gr(getreal"输入轮毂端面半径:gr="))(setq yr(getreal"输入轮缘端面半径:yr="))(setq s(/ (- h lf) 2))(setq l(- h s))))(setq rf(/ (* (- z 2.5) m) 2)rj(/ (* m z 0.939693) 2)r (/ (* z m) 2)ra(/ (* (+ z 2) m) 2)tt(* m pi)pj(/ 36.0 z)a (/ (* 1.25 m) (cos (* 20 (/ pi 180))))pt0(list 200.0 30.0 0.0)pt1(polar pt0 0 (/ tt 4))pt2(polar pt0 pi (/ tt 4))pt3(polar pt1 (* 110 (/ pi 180)) a)pt5(polar pt1 (* -70 (/ pi 180)) a)pt4(polar pt2 (* 70 (/ pi 180)) a)pt6(polar pt2 (* 250 (/ pi 180)) a)pt7(polar pt6 (* -90 (/ pi 180)) 2))(command "layer" "m" "11" "c" 1 "" """layer" "m" "12" "c" 2 "" """layer" "m" "13" "c" 252 "" """layer" "s" "13" """pline" pt7 pt6 pt4 pt3 pt5)(setq i 1)(while (<= i 7)(setq pt6(polar pt6 0 tt)pt4(polar pt4 0 tt)pt3(polar pt3 0 tt)pt5(polar pt5 0 tt))(command pt6 pt4 pt3 pt5)(setq i(+ i 1)))(setq pt8(polar pt5 (* -90 (/ pi 180)) 2))(command pt8 "c")(setq pt(polar pt0 (* 180 (/ pi 180)) (* 4 tt))) (command "move" "l" "" pt0 pt)(setq e0(entlast))(command "layer" "s" 11 "")(setq p0(polar pt0 (* 90 (/ pi 180)) r))(command "circle" p0 ra)(command "region" "l" "")(setq e10 (entlast))(command "layer" "s" "12" "")(setq j 1)(while (<= j z)(setq i 1)(while (<= i 10)(command "rotate" e10 "" p0 pj)(setq yd(* r pj (/ pi 180) i))(setq pt(polar pt0 0 yd))(command "copy" e0 "" pt0 pt)(command "region" "l" "")(setq e1(entlast))(command "subtract" e10 "" e1 "")(setq i (+ i 1)))(setq j(+ j 1)))基于SolidWorks开发标准件库下面通过介绍SldWorks标准件库这个软件的开发和应用过程,来具体说明利用VB作为开发工具,通过调用SolidWorks API函数,来二次开发SolidWorks的方法.1.VB开发SolidWorks标准件库的过程该标准件库软件能够在SolidWorks中实现标准件3D造型的的参数化自动绘制,涵盖的标准件类型齐全,具体包括:轴承类标准件,螺纹联结标准件,销键联结标准件,联轴器类标准件五大部分.下面按上述原理方法简要介绍一下该系统的主要开发过程.1.1 建立实体模型查阅<<机械设计手册>>(软件版)R2.0,首先:分析要建立实体的结构,使所建立的特征尽可能的简单,参数尺寸尽可能少,再次:运行SolidWorks开始宏录制命令并创建一个深沟球轴承标准件,创建完毕后结束宏的录制,将宏保存起来.最后:在宏代码中找到定义实体模型的尺寸值,用对应的参数变量代替宏文件中的关键数据.以深沟球轴承为例,通过简化,建立深沟球轴承模型需要如图3中草图1和草图2的14个关键点,共计12个坐标变量,而这12个变量都能由轴承的7个主要尺寸参数通过计算得出,这7个主要尺寸参数分别为:轴承的内径,外径,宽度,内圈外径和圆角大小.轴承的主要尺寸参数值可以根据轴承型号从数据库表中直接调用.1.2 建立标准件数据库利用VB调用SolidWorks API函数来创建标准件库需要标准件的一系列数据,本文利用VB 默认的数据库Microsoft Access为每一种标准件建立数据库,图4所示为深沟球轴承的尺寸数据库及其表单的创建.数据库建成后,在应用程序中把数据控件Data与指定的数据表链接起来,并把主要尺寸参数的TextBox和数据库中对应字段绑定.1.3建立用户界面本标准件库的程序界面是由主界面和各类标准件子界面构成,主界面简洁明了如图5,只由frame与命令按钮构成,按各类标准件按钮就能够进入相应的子界面进行标准件绘制.各类子界面主要由SSTab,TextBox,命令按钮,图片框与Data控件组成,尺寸框架中可以显示标准件的主要尺寸参数,并提供按型号查找功能,在图片框中显示用户选择标准件的示意图.子界面具体设计形式及能完成功能. 1.4主要代码及注释由于程序代码较长,下面按用到的先后顺序简要介绍一下程序中的主要定义及命令:'---------------------Solidworks宏程序变量描述------------------Public swApp As Object '声明应用程序对象Public Part As Object '声明零件对象Public boolstatus As Boolean ' 声明布尔变量Public longstatus As Long, longwarnings As Long '变量为长整型Public Feature As Object '定义特征对象'-----------------------主要命令代码注释-------------------------Set swApp = CreateObject("SldWorks.Application")'创建一个应用程序Set Part = swApp.Newpart '打开一个新实体文件Set Part = swApp.ActiveDoc '激活当前实体文件boolstatus = Part.Extension.SelectByID("前视", "PLANE", 0, 0, 0, False, 0, Nothing) '选择前视基准面为草图平面Part.InsertSketch2 True '插入草图Part.CreateLine2(xStart,yStart,zStart,xEnd,yEnd,zEnd ).Construct_ionGeometry =True '画中心线Part.ViewZoomtofit2 '整屏显示全图Part.ClearSelection '清除选择Part.CreateArcVB(p1x,py,p1z,p2x,p2y,p2z,p3x,p3y,p3z,dir) '以p1为圆心,从p2到p3生成圆弧Part.CreateLine2(xStart,yStart,zStart,xEnd,yEnd,zEnd) '两点画直线boolstatus = Part.Extension.SelectByID2(Name, Type, X, Y, Z, Append, Mark, Callout,SelectOption) '选择操作对象Part.SketchMirror '镜像所选对象Part.FeatureManager.FeatureRevolve(angle,reverseDir,angle2,revType,options, merge, useFeatScope, useAutoSel) '生成旋转特征Part.ShowNamedView2 vName, viewId 'X视图显示Part.CreatePlaneAtOffset3 val, flipDir, autoSize '插入基准面Part.InsertAxis2 True '插入基准轴Part.BlankRefGeom '隐藏所选参考几何体swApp.ExitApp '退出sldworks应用程序2.程序的应用方法为使用户更方便的使用做好的标准件库软件,我们可以将VB中建立的工程文件” standard library for sw.vbp”编译生成” standard library for sw.exe”文件,这样在打开SolidWorks 后直接点击此exe文件,就可以根据需要来绘制标准件3D模型了.上述直接运行exe文件来使用标准件库的方法,只能局限于安装了VB的计算机上,为了让没有安装VB的用户也能方便的使用该标准件库软件,我们可以用Visual Studio自带的打包工具Package and Deployment Wizard将标准件库制作成标准安装程序,打包过程中要注意包含文件步骤,一定要确认包含文件的完整性,程序使用的图标,图片,第三方控件所带的文件一定要带上,否则可能导致安装后的程序运行出错.3.结束语本文通过介绍标准件库的应用程序,说明了利用VB调用SolidWorks API函数对SolidWorks二次开发的一般方法,读者可以采用该方法建立适合自己需要的,专用的SolidWorks功能模块,继续对SolidWorks二次开发进行深入研究与探索.(插图无法上传,见谅!) 本文摘选自我的一篇学术论文,原文见《山东机械》杂志 2006.5月3期。

Auto CAD 二次开发 Lisp 字典解读

Auto CAD 二次开发 Lisp 字典解读

Auto CAD Lisp函数及例题大全目录一,基本函数: ......................................................................................................................... - 1 - 1,算术运算........................................................................................................................ - 1 - + - * / ~ 1+ 1- abs atan cos exp expt fix float gcd log logand logior lsh max min minusp rem sin sqrt zerop2,字符串处理.................................................................................................................... - 9 - strcase strcat strlen substr wcmatch3,等量和条件函数.......................................................................................................... - 12 - = /= < <= > >= and boole cond eq equal if or repeat while4,表处理函数.................................................................................................................. - 23 - acad_strlsort append assoc car和cdr cons foreach last length list listp mapcar member nth reverse subst 5,符号处理函数.............................................................................................................. - 32 - aotm atoms_family boundp not null numberp quote read set setq type6,处理函数的函数.......................................................................................................... - 38 - apply defun eval lambda progn trace untrace 7,错误处理函数.............................................................................................................. - 45 - alert *error* exit quit8,应用程序处理函数...................................................................................................... - 51 - ads arx arxload arxunload autoarxload autoload autoxload load startapp xload xunload二,实用工具函数: ............................................................................................................... - 57 - 1,查询和command函数............................................................................................... - 57 - acad_colordlg acad_helpdlg command getcfg getenv getvar help setcfg setfunhelp setvar ver2,显示控制函数.............................................................................................................. - 66 - graphscr grclear grdraw grtext grvecs menucmd prin1 princ print prompt redraw terpri textpage textscr vports3,用户输入函数.............................................................................................................. - 74 - entsel getangle getcorner getdist getfiled getint getword getorient getpoint getreal getstring initget nentsel nentselp4,几何实用函数.............................................................................................................. - 86 - angle distance inters osnap polar textbox5,转换函数...................................................................................................................... - 90 - angtof angtos ascii atof aoti chr cvunit distof itoa rtos trans6,文件处理函数.............................................................................................................. - 98 -close findfile open read-char read-line write-char write-line7,设备访问函数............................................................................................................ - 103 - grread tablet三,ase接口函数: ............................................................................................................... - 105 - 四,选择集,对象和符号表函数: ..................................................................................... - 106 - 1,选择集处理函数........................................................................................................ - 106 - ssadd ssdel ssget sslength ssmemb ssname 2,对象处理函数............................................................................................................ - 112 - entdel entget entlast entmake entmod entnext entupd handent3,扩展数据处理函数.................................................................................................... - 127 - regapp xdroom xdsize4,符号表和词典处理函数............................................................................................ - 129 - dictnext dictsearch namedobjdict snvalid tblnext tblobjname tblsearch五,对话框编程函数: ......................................................................................................... - 135 - 1,对话框打开和关闭函数............................................................................................ - 135 - done_dialog load_dialog new_dialog start_dialog term_dialog unload_dialog2,控件和属性处理函数................................................................................................ - 138 - action_tile get_attr get_tile mode_tile set_tile3,列表框和弹出式列表框处理函数............................................................................ - 140 - add_list end_list start_list4,图象控件处理函数.................................................................................................... - 141 - dimx_tile和dimy_tile end_image fill_image slide_image start_image vector_image5,特定应用数据处理函数............................................................................................ - 145 - client_data_tile六,内存管理函数: ............................................................................................................. - 146 - alloc expand gc mem vmon一,基本函数:1,算术运算+一. 功能返回所有被加数之和。

CAD的LISP功能函数一览表

CAD的LISP功能函数一览表

返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 返回 请求 请求 请求 请求 请求 请求 请求 请求 请求 请求
转换坐标系统值 结合所有列表成一个列表 根据关键元素寻找联合列表中关系信息 列表中第一个元素,常用来求X坐标 列表中第二个元素,常用来求y坐标 列表中第三个元素,常用来求z坐标 除去第一个元素后的列表 将新元素添加到列表 将列表的第一元素对应至名称再根据表达式执行响应 列表内的元素数量 将所有元素合并为一个列表 判断元素是否为一串 将列表1 、列表2„„列表的元素配合函数,求得新列表 根据关键元素(含)以后的列表 列表的第n个元素 将列表元素根据顺序颠倒过来的列表 替换新旧列表后的列表 字符串第一个字符的“ASCⅡ”码 整数所对应的ASCⅡ单一字符串 关闭文件 打开文件代码,准备读取或写入信息 列表中的字符串的第一组元素 通过键盘或文件中读取单一字符 经由键盘或文件中读取一行字符串 转换字符串大小写 将各字符串合并为一个字符串 字符串构成的字符数(即字符串长度) 取出子字符串 T或nil,将字符串与通用字符进行比较 将一ASCⅡ字符写到文件或屏幕 将字符串写到文件或屏幕上 输入十进制角度数值,响应一个弧度值。提示及参考点可有可无。 输入另一矩形框对角点坐标 输入一段距离 输入一个整数值 输入“关键词” 输入十进制角度,响应一弧度值不受angbase和angdir的影响。 输入一个点的坐标 输入一个实数 输入一个字符串 设定下次getxxx函数的有效输入。 取得两点的角度弧度值
返回 返回 返回
返回
取得两点的距离 取得两条线的交点 按照捕捉模式取得另一坐标点 按照极坐标法取得另一坐标点 取得文字字符串的两个对角点坐标 删除或取消删除对象 取出对象名称的信息列表 取出图形信息中的最后一个对象 建立一个新的对象列表 根据更新的信息列表更新屏幕上元体 找寻图面中的下一个对象 请求选取一个对象,响应包含对象名称及选点坐标的列表。 更新屏幕上复元体图形 图码的元体名称 Block所含副元体对象信息列表 Block所含副元体对象信息(以4x4矩形表示) 将对象加入选择集或建立一个新的选择集 将对象自选择集中移出 取得一个选择集 取得根据过滤列表所指定范围的选择集 计算选择集的对象个数 响应对象名称是否包含于选择集内 根据索引集取出选择集中的对象名称 检视符号表,有效的符号表:"LAYER"、"LTYPE"、"VIEW"、"STYLE"、"BLOCK" 在符号表中搜寻符号 重量级函数,调用执行AutoCAD命令 文件名的路径及文件名 通过标准AutoCAD文件对话DCL对话框获得文件 取得该环境变量的设定值,以字符串表示 取得该系统变量的设定值,以字符串表示 设定该系统变量的值 将目前的AutoCAD图形登记为一个应用程序名称 检验比较式结果,如果为真,执行<表达式1>,否则执行<表达式2> 重复执行N次表达式 条件成立时执行表达式内容 多条件式的If整合功能 连接其中的表达式为一组,常用于配合if、cond等函数 程序错误时的警示信息 以对话框式显示出警告字符串 将功能函数与列表结合后执行 自定义函数或子程序

单曲线坐标计算并展点用CAD_lisp函数

单曲线坐标计算并展点用CAD_lisp函数
输入桩号[自动序列(-2)]:25650.926
结果: K25+650.926 X=3252647.051 Y=381399.471 A=166.566509 度
输入下一个桩号[放弃(-1)]:25690
结果: K25+690 X=3252609.1001 Y=381408.771 A=165.866009 度
(9)输入下一个桩号[放弃(-1)] :停止连续桩号计算时,输入-1即可退出命令
注意事项:本开发使用辛卜生公式,故参数的使用需符合辛卜生公式要求。按桩号递减方向计算坐标时需调整曲线始点的角度值=方位角±180度!
如A->B曲线桩号递增,B点方位角为166度,按B->A桩号递减方向计算时,B点的方位角应为166+180=246度。
输入下一个桩号[放弃(-1)]:-1
命令:
选择顺曲线桩号递增方向的转向[左(-1)\右(1)]:-1
-------------------------------------------------------------
开始桩号坐标计算,请输入曲线始点至终点间的桩号!
-------------------------------------------------------------
(6)输入曲线终点半径(半径=∞时为0) :半径无穷大时(接直线),曲率趋向0,内有判断机制,故录入0
(ቤተ መጻሕፍቲ ባይዱ)选择顺曲线桩号递增方向的转向[左(-1)\\右(1)] :左转录入-1 ,右转录入1不要录入其他数据。
(8)输入桩号[自动序列(-2)]: :输入-2即可进行自动序列计算
使用示例:本示例为CAD命令行回显信息:

cad使用lisp

cad使用lisp

【累计长度cd】(DEFUN C:cd ()(setq tot_len 0)(prompt "\nSelect all objects to count请选择所有要累计长度的物体: ") (setq ss (ssget))(while (> (sslength ss) 0)(setq en (ssname ss 0))(setq ed (entget en))(setq e_type (cdr (assoc '0 ed)))(cond((= e_type "LINE") (add_lines))((= e_type "ARC") (add_arcs))((= e_type "POLYLINE") (add_poly))((or(/= e_type "LINE")(/= e_type "ARC")(/= e_type "POLYLINE"))(ssdel en ss))))(prompt (strcat "\nTotal length is 总长度是: " (rtos tot_len 2 2))))(princ)【焊缝hf】;;; WELDn.LSP;;; Date : 28 June 1995;;; Description : Draws welding symbol;;; bong c. deato property for Tostem HK Ltd.;;; 2.00;;; revise 03 July 1996: add sideweld option;;; 2.01;;; revise 17 September 1996 : add UCS World command to fit all ucs ;;; 2.02;;; revise 15 July 1997 : change the weld-plan routine;;; 3.00;;; by Eric Wong(defun C:hf (/ old cmdold lyold)(setq old *error*)(defun *error* (msg)(if(or(/= msg "Function cancelled")(= msg "quit / exit abort"))(princ)(princ (strcat "\nError: " msg)))(setq *error* old)(setq old nil base nil cmdold nil lyold nil)(princ));defun error(setq cmdold (getvar "cmdecho"))(setq lyold (getvar "clayer"))(prompt "\nWELD.lsp Version 3.00")(setvar "CMDECHO" 0)(princ);;; default value routine(if (= wsz nil) (setq wsz 4.0))(princ (strcat "\nWelding size <" (rtos wsz 2 2) ">: ")) (setq a (getdist))(if (= a nil) (setq a wsz))(setq wsz a)(initget "Sideweld Planweld")(setq select (getkword "\nSideweld/<Planweld>: ")) (if (= select "Sideweld")(weld_sect)(weld_plan))(setq old nil)(setvar "CMDECHO" CMDOLD)(setvar "blipmode" 0)(setvar "clayer" lyold)(princ)); end;;;------------------------------------------------------------- ;;; weldn section routine(defun weld_sect (/ ipt weld-lay)(setvar "blipmode" 1)(setq ipt (getpoint "\n Insertion point: "))(setq weld-lay (tblsearch "layer" "PUB_HA TCH"))(if (= weld-lay nil)(command ".layer" "M" "PUB_HA TCH" "c" "6" "" "") (setvar "clayer" "PUB_HATCH"))(command ".insert" "welds" ipt wsz "" pause)(command ".explode" (entlast))(command ".chprop" "p" "" "la" "PUB_HATCH" ""));;; new weld plan routine(defun weld_plan ();(/ pt1 pt2 pt3 pt4 weld-l weld-n weld-ang)(if (= (tblsearch "layer" "PUB_HATCH") nil)(command ".layer" "M" "PUB_HA TCH" "c" "6" "" "")(setvar "clayer" "PUB_HATCH"))(setvar "blipmode" 1)(command "ucs" "w")(princ "\nPick points in clockwise rotation.")(setq pt1 (getpoint "\nFrist point :")pt2 (getpoint pt1 "\nSecond point :")weld-l (distance pt1 pt2)weld-n (fix (/ weld-l wsz))weld-ang (angle pt1 pt2)pt3 pt1)(command ".pline" pt1 "a")(repeat (- weld-n 2)(command "ce" (setq pt4 (polar pt3 weld-ang wsz)) "a" "-120") (command "d" pt3 pt4)(setq pt3 pt4))(command "ce" (setq pt4 (polar pt3 weld-ang wsz)) "a" "-180" "") (command "ucs" "p")); end weld_plan(princ "\nready to welding\n")(princ)【点坐标】(defun c:vf ()(command "osmode" "513")(SEtQ POINT1 (GETPOINT "/n点1"))(command "osmode" "0")(setq yy1 (cadr POINT1))(setq zz1 (caddr POINT1))(setq A1 (ITOA (fiX yy1)))(setq A2 (ITOA (fiX zz1)))(setq a (STRCAT "屋面" A1 " " "幕墙" A2 " "))(command"text" POINT1 "400" "0" a /n)(setq a (entlast))(command "change" a "" "p" "la" "装饰面进出位" "c" "bylayer" "") (command "osmode" "673"))(defun c:q1 ()(command "ucs" "")(command "osmode" "513")(SEtQ POINT1 (GETPOINT "/n点1"))(command "osmode" "0")(setq xx1 (car POINT1))(setq yy1 (cadr POINT1))(setq zz1 (caddr POINT1))(setq A1 (ITOA (fiX xx1)))(setq A2 (ITOA (fiX yy1)))(setq A3 (ITOA (fiX zz1)))(setq a (STRCAT "X=" A1 " " "Y=" A2 " " "Z=" a3 " "))(command"text" POINT1 "400" "0" a /n)(setq a (entlast))(command "change" a "" "p" "la" "坐标点" "c" "bylayer" "")(command "osmode" "673"))。

LISP函数(分类)大全

LISP函数(分类)大全

AutoLisp函数一、数学运算功能函数1.l(十数值数值…)返回:累计实数或整数数值1.2(一数值数值…)返回:差值1.3(*数值数值…)返回:所有数值乘积1.4(/数值数值…)返回:第一个数值除以第二个以后数值的商1.5(l十数值)返回:数值十ll.6(1—数值)返回:数值一ll.7(abs数值)返回:数值的绝对值1.8(atan数值)返回:反正切值1.9(cos角度)返回:角度的余弦值,角度值为弧度1.10(exp数值)返回:数值的指数1.11(expt底数指数)返回:底数的指数值1.12(fix数值)返回:将数值转换为整数值1.14(gcd数值1数值2)返回:两数值的最大公因数1.15(log数值)返回:数值的自然对数值1.16(max数值数值…)返回:数值中的最大值1.17(min数值数值…)返回:数值中的最小值1.18pi常数∏,其值约为3.14159261.19(rem数值1数值2)返回:M数值的相除的余数l.20(sin角度)返回:角度的正旋值,角度值为弧度1.21(sqrt数值)返回:数值的平方根二、检验与逻辑运算功能函数2.l(=表达式1表达式2)比较表达式1是否等于式2,适用数值及字符串2.2(/=表达式1表达式2)比较表达式1是否大于等于表达式22.3(<表达式1表达式2)比较表达式1是否<小于表达式22.4(<=表达式1表达式2)比较表达式1是否<一小于等于表达式22.5(>表达式1表达式2)比较表达式1是否>大于表达式22.6(>=表达式1表达式2)比较表达式1是否大于等于表达式22.7(~数值)返回:数值的位not值,(1的补码)2.8(and表达式1表达式2…)返回:逻辑and的结果2.9(boole函数整数整数…)返回:位式布尔运算AutoLisp函数2/82.10(eq表达式1表达式2)比较表达式1与表达式2是否相同,适用列表比较(实际相同)2.11(equal表达式1表达式2[差量])比较表达式1与表达式2是否相同,差量可省略(内容相同)三、转换运算功能函数3.l(angtof字符串[模式])返回:角度值的字符串转成实数3.2(angtos角度[模式[精度]])返回:角度转成的字符串值3.3(atof字符串)返回:字符串转成实数值3.4(atoi字符串)返回:字符串转成整数值3.5(cvunit数值原始单位转换单位)返回:数值转换单位后的值转换根据acad.nut 文件3.6(distof字符串[模式])返回:根据模式将字符串转成实数值3.7(itoa整数)返回:整数转成字符串3.8(rtos数值模式[精度])返回:实数转成字符串3.9(trans点原位置新位置[位移])返回:转换坐标系统值四、列表处理功能函数4.1(append列表列表……)结合所有列表成一个列表4.2(assoc关键元素联合列表)根据关键元素找寻联合列表中关系信息4.3(car列表)返回列表中的第一个元素,通常用来求X坐标4.4(cadr列表)返回列表中的第二个元素,通常用来求y坐标4.5(caddr列表)返回列表中的第三个元素,通常用来求Z坐标4.6(cdr列表)返回:除去第一个元素后的列表4.7(cons新元素列表)返回:将新元素添加到列表4.8(foreach名称列表表达式)返回:将列表的每一元素对应至名称再根据表达式执行响应4.9(length列表)返回:列表内的元素数量4.10(list元素元素…)返回:将所有元素合并为一列表4.11(listp元素)返回:判断元素是否为一串4.12(mapcar函数列表1列表2…)返回:将列表1、列表2列表的元素配合函数,求得新列表4.13(member关键元素列表)返回:根据关键元素(含似后的列表4.14(nth n列表)返回:列表的第n个元素AutoLisp函数3/84.15(reverse列表)返回:将列表元素根据顺序颠倒过来的列表4.16(subst新项旧项列表)返回:替换新旧列表后的列表五、字符串、字符、文件处理函数5.l(ascii字符串)返回:字符串第一个字符的“ASCII”码5.2(chr整数)返回:整数所对应的ASCII单一字符串5.3(close文件名称)关闭文件5.4(open文件名模式)返回:打开文件代码,准备读取或写入信息5.5(read字符串)返回:列表中的字符串的第一组元素5.6(read-char[文件代码])返回:通过键盘或文件中读取单一字符5.7(read-line[文件代码])返回:经由键盘或文件中读取一行字符串5.8(strcase字符串[字样])返回:转换字符串大小写5.9(strcat字符串1字符串2…)返回:将各字符串合并为一个字符串5.10(strlen字符串)返回:字符串构成的字符数(即字符串长度)5.11(substr字符串起始长度)返回:取出于字符串‘5.12(wcmatch字符串格式)返回:T或nil,将字符串与通用字符进行比较5.13(write-char数值[文件代码])返回:将一ASCII字符写到文件或屏幕15.14(write-line字符串[文件代码])返回:将字符串写到文件或屏幕上六、等待输入功能函数6.l(getangle[基点][提示])请求输入十进制角度数值,响应一个弧度值提示及参考点可有可无6.2(getcorner基点[提示])请求输入另一矩形框对角点坐标6.3(getdist[基点][提示])请求输入一段距离6.4(getint[提示])请求输入一个整数值6.5(getkword[提示]请求输入“关键词”6.6(getorient[基点][提示])请求输入十进制角度,响应一弧度值不受angbase、angdir 影响6.7(getPoint[基点][提示])请求输入一个点的坐标6.8(getreal[提示]请求输入一个实数6.9(getstring[提示])请求输入一个字符串6.10(initget[位]字符串)设定下次getxxx函数的有效输入七、几何运算功能函数7.l(angle点1点2)取得两点的角度弧度值7.2(distance点1点2)取得两点的距离7.3(inters点1点2点3点4[模式])取得两条线的交点7.4(osnap点模式字符串)按照捕捉模式取得另一坐标点7.5(polar基点弧度距离)按照极坐标法取得另一坐标点7.6(textbox对象列表)取得文字字符串的两个对角点坐标八、对象处理功能函数8.l(entdel对象名称)删除或取消删除对象8.2(entget对象名称[应用程序列表])取出对象名称的信息列表8.3(entlast)取出图形信息中的最后一个对象8.4(entmake对象列表)建立一个新的对象列表8.5(entmod对象列表)根据更新的信息列表更新屏幕上元体8.6(entnext[对象名称])找寻图面中的下一个对象8.7(entsel[提示])请求选取一个对象,响应包含对象名称及选点坐标的列表;8.8(entupd对象名称)更新屏幕上复元体图形8.9(handent图码)返回:图码的元体名称8.10(nentsel[提示])返回:BLOCK所含副元体对象信息列表8.11(nentselp[提示][点])返回:BLOCK所含副元体对象信息似4*4矩形表示)九、选择集、符号表处理函数9.l(ssadd[对象名称][选择集])将对象加入选择集或建立一新选择集9.2(ssdel对象名称选择集)将对象自选择集中移出9.3(ssget[模式][点1][点2]取得一个选择集9.4(ssget”X”[过滤列表])取得根据过滤列表所指定范围的选择集9.5(sslenth选择集)计算选择集的对象个数9.6(ssmemb对象名称选择集)响应对象名称是否包含于选择集内9.7(ssname选择集索引值)根据索引值取出选择集中的对象名称9.8(tblnext符号表名称[T])检视符号表,有效的符号表:”LAYER”、”LTYPE”、”VIEW”、”STYLE”、”BLOCK”9.9(tblsearch符号表名称符号)在符号表中搜寻符号十、AutoCAD相关查询、控制功能函数10.l(command”AutoCAD命令”…)超重量级函数,调用执行AutoCAD命令AutoLisp 函数5/810.2(findfile文件名)返回:该文件名的路径及文件名10.3(getfiled标题内定档名扩展名旗号)通过标准AutoCAD文件对话DCL对话框获得文件10.4(getenv”环境变量”)取得该环境变量的设定值,以字符串表示10.5(getvar”系统变量”)取得该系统变量的设定值,以字符串表示10.6(setvar”系统变量”值)设定该系统变量的值10.7(regapp应用类项)将目前的AutoCAD图形登记为一个应用程序名称十一、判断式、循环相关功能函数11.1(If<比较式><表达式1>[表达式2]检算比较式结果,如果为真,执行<表达式1>,否则执行<表达式2>11.2(repeat次数[<表达式><表达式>…])重复执行N次表达式11.3(While<比较式><表达式>…)当条件成立则执行表达式内容11.4(cond<比较式1><表达式1>多条件式的if整合功能<比较式2><表达式2><比较式3><表达式3>)11.5(prong表达式1表达式2…)连接其中的表达式为一组,常用于配合if、cond 等函数十二、函数处理、定义、追踪与错误处理功能函数12.l(*error*字符串)程序错误时的警示信息12.2(alert字符串)以对话框式显示出警告字符串12.3(apply功能函数列表)将功能函数与列表结合后执行12.4(defun名称自变量列表表达式_.)自定函数或子程序12.5(eval表达式)返回:表达式的执行结果12.6(exit)强制退出目前的应用程序12.7(lambda自变量表达式)定义未命名的函数12.8(progn表达式1表达式2…)连接其内的表达式为一组,常用于配合if、cond等函数12.9(quit)强制退出目前的应用程序12.10(tablet代码[列1列2列3方向])取用或建立对数字板的校调12.11(trace函数…)对函数设定追踪标记,辅助检错12.12(untrace函数…)对函数设定解除追踪标记AutoLisp函数6/8十三、显示、打印控制功能函数13.l(gfaphscr)作图环境切换到图形画面13.2(grclear)暂时清除模前的屏幕画面13.3(grdraw起点终点颜色[亮显])暂时性的画出一条线13.4(grread[追踪])由输入设备读取追踪值13.5(grtext位置字符串[亮显])将字符串显示在状态列或屏幕菜单上13.6(grvecs向量列表[转置矩阵])暂时性的画出多条线13.7(menucmd字符串);提供在AlltOLISP中调用各菜单13.8(Prinl[表达式[文件代码]]将表达式打印于命令区或已打开的文件句柄字符则以“\”为前缀展开13.9(pinc[表达式[文件代码]]除句柄字符则不以”\”为前缀展外开其余同Prinl 13.10(print[表达式[文件代码]]除表达式会往下一新行列出,及空一格外其余同prinl13.11(prompt信息)将信息显示于屏幕的命令区,并随后响应一个nil信息13.12(redraw[对象名称[模式]])重绘整张图或根据对象名称重绘该图形13.13(terpri)在屏幕上显示新列13.14(textscr)作图环境切换到文字画面13.15(textpage)清除文字画面文字类似DOS的cls命令13.16(vports)返回:窗口组态列表十四、符号、元素、表达式处理功能函数14.l(atom元素)如果元素不是列表,响应T,否则为nil14.2(atoms-family格式闲号列表])返回:一组己定义函数的符号列表14.3(boundp表达式)返回:T或nil,响应表达式是否有值存在14.4(minusp元素)返回:T或n儿元素是否为负值14.5(not元素)返回:T或n儿判定元素是否为ni114.6(null元素)返回:T或nil判定元素是否被赋予nil值14.7(numberp元素)返回:T或nil,元素是否为整数或实数14.8(quote表达式)响应表达式未检算前状态,同“‘”功能14.9(set符号表达式)将表达式结果设定给带单引号’符号14.10(setq符号1表达式1[符号2表达式2]…)设定表达式结果给各符号14.11(type元素)返回:元素的信息型态14.12(zerop元素)返回:T或nil,元素是否为0值十五、ADS、ARX、AutoLISP加载与卸载函数AutoLisp函数7/815.l(ads)返回:目前加载ADS程序列表15.2(arx)返回:目前加载ARX程序列表15.3(arxload应用程序[出错处理]))返回:加载ARX程序15.4(arxunload应用程序[出错处理]))返回:卸载ARX程序15.5(ver)返回:目前AutoLISP版本字符串15.6(load LSP文件名[加载失败])加载AutoLISP文件(*.lsp)15.7(xload应用程序[错处理])加载ADS应用程序15.8(xunloa应用程序[出错处理])卸载ADS应用程序十六、内存空间管理函数16.l(alloc数值)以节点数值设定区段大小16.2(expand数值)以区段数值配置节点空间16.3(gc)强制收回废内存16.4(mem)显示目前的内存使用状态16.5(xdroom对象名称)返回对象扩展信息允许使用的内存空间16.6(xdsize列表)返回对象扩展信息所占用的内存空间十七、其它重要的功能函数17.l(acad_colordlg颜色码旗号)显示出标准AutoCAD颜色选择对话框17.2(acad_helpdlg求助文件名主题)显示出标准AutoCAD求助对话框17.3(acad_strlsort字符串列表)作字符串列表排序17.4(bherrs)取得bhatch与bpcly失败所产生的错误信息17.5(bhatch点[选择集[向量]])根据Pick point选点方式调用bhatch命令,绘制选集区域的剖面线17.6(bpoly点[选择集[向量]])根据Pick point选点方式调用bpoly命令并产生一定域Polyline17.7(cal计算式字符串)执行如CAL计算功能十八、ADS、ARX外部定义的3D函数18.1(align自变量1自变量2....)执行如ALIGN命令各选项顺序18.2(c:3dsin模式3DS文件名)导入3DS文件18.3(C:3dsout模式3DS文件名)输出3DS文件18.4(c:background模式[选项])设定渲染背景18.5(C:fog模式[选项])设定渲染的雾效果18.6(C:light模式[选项])设定渲染的灯光控制18.7(c:lsedit模式【选项1】设定渲染的景物控制18.8(C:lslib模式[选项])管理景物图库18.9(c:matilb模式材质材质库名)管理材质数据库18.10(c:mirror3d自变量1自变量2……)执行如MIRROR3D命令18.11(C:psdrap模式)根据模式设定值(0或1),传唤psdrap命令18.12(C:psfill对象名称图案名称[自变量1[自变量2]])以POStSCript图案填满18.13(c:psin文件名位置比例)插入一个Postscript(*.eps)文件18.14(c:render[渲染文件])执行渲染效果18.15(C:rfileopt格式自变量1自变量2自变量3…)设定执行渲染选项18.16(c:replay影像文件名影像类别[选项])展示影像文件TGA、BMP、TIF18.17(C:rmat模式选项)控管材质建立、贴附、编辑、分离18.18(c:rotate3d自变量1自变量2…)执行如ROTATE3D命令各选项顺序18.19(C:rpref模式选项[设定])渲染环境设定18.20(c:saveimg影像文件名影像类别[选项])储存图像文件TGA、BMP、TIF18.21(c:scene模式[选项])SCENE场景管理18.22(C:setuv模式选集自变量1自变量2…)SETUV贴图模式管理18.23(C:showmat自变量1)显示对象的材质贴附信息18.24(C:solprof自变量1自变量工..)建立3D实体的轮廓影像18.25(C:StatS[渲染信息文件])显示渲染信息统计信息十九、ADS、ARX外部定义的数据库相关函数19.l(c:aseadmin自变量1自变量2…)管理外部数据库19.2(c:aseexportt自变量1自变量2…)输出信息19.3(c:aselinks自变量1自变量2…)连接对象与信息19.4(c:aserow自变量1自变量2…)管理外部信息表格19.5(c:aseselect自变量1自变量2…)建立外部信息与对象选集19.6(c:asesqled自变量1自变量2…)执行SQL程序。

cad自动写标高lisp

cad自动写标高lisp

cad自动写标高lispcad自动写标高lisp;;自动标高主程序(使用方法:新建文件,后缀名为.lsp,将全部内容粘贴过去,然后将lsp文件拖进cad窗口(即加载),输入命令xbg,按命令行提示操作即可)(defun c:xbg(/ xs_d os dim jd i_sc i_bg i_uni bg_jz pt_jz zb_jz pt_nt zb_nt bg_nt)(setvar "cmdecho" 0)(setvar "dimzin" 0)(setvar "blipmode" 0)(setq xs_d (getvar "dimzin"))(setq os (getvar "osmode"))(setq dim (getvar "dimzin"))(chk_style)(princ "\n适用于真实尺寸作图")(setq i_uni (getstring "\n图纸单位是mm/cm/m:")) (if (= "" i_uni) (setq i_uni "cm"))(cond ((= i_uni "mm") (setq i_bg 1000.0))((= i_uni "cm") (setq i_bg 100.0))((= i_uni "m") (setq i_bg 1.0))(t (setq i_bg 1.0)))(if (setq jd (getint "\n标高有效位数<3>:")) () (setq jd 3))(if (setq i_sc (getreal "\n比例系数<1>:")) () (setq i_sc 1))(if (setq bg_jz (getreal "\n输入基准点标高<100.0>:")) () (setq bg_jz 100.0))(setq pt_jz (getpoint "\n指定基准点:"))(setq zb_jz (cadr pt_jz))(d_fh pt_jz bg_jz) ;绘制基准点(while (setq pt_nt (getpoint "\n指定下一点:"))(progn(setq zb_nt (cadr pt_nt))(setq bg_nt (+ bg_jz (/ (- zb_nt zb_jz) i_bg)))(d_fh pt_nt bg_nt);绘制标准点))(setvar "dimzin" xs_d)(setvar "dimzin" dim));;测试子程序(defun c:css(/ pt bg)(setq pt (getpoint "\n````"))(setq bg 100.0)(setq jd 2)(setq i_sc 1)(d_fh));;标注标高(defun d_fh(pt bg / pt1)(setvar "osmode" 0)(command "line" (polar pt 0 (* 3.0 i_sc)) (polar pt 0 (* 7.0 i_sc)) "")(command "line" (polar pt 0 (* 5.0 i_sc)) (polar (polar pt 0 (* 5.0 i_sc)) (/ pi 3) (* 3.0 i_sc)) "")(command "line" (polar pt 0 (* 5.0 i_sc)) (polar (polar pt 0 (* 5.0 i_sc)) (* 2 (/ pi 3)) (* 3.0 i_sc)) "")(command "line" (polar (polar pt 0 (* 5.0 i_sc)) (* 2 (/ pi 3)) (* 3.0 i_sc)) (polar (polar (polar pt 0 (* 5.0 i_sc)) (* 2 (/ pi 3)) (* 3.0i_sc)) 0 (* 12.0 i_sc)) "")(setq pt1 (polar (polar (polar pt 0 (* 5.0 i_sc)) (* 2 (/ pi 3)) (* 3.0 i_sc)) 0 (* 6.0 i_sc)))(command "_.text" "j" "m" (polar pt1 (/ pi 2) (* 1.8 i_sc)) (* 2.5 i_sc) "0" (rtos bg 2 jd))(setvar "osmode" os))(defun chk_style();检查字型(setq chksty(tblsearch "style" "standa"))(if (null chksty)(progn(command "_style" "standa" "fsdb" "0" "0.7" "0" "n" "n" "n") ))(setq chklay(tblsearch "layer" "文本"))(if (null chklay)(command "_layer" "m" "文本" "c" "3" "文本" ""))(setvar "clayer" "文本")(setvar "textstyle" "standa"))(princ "\n--自动写标高程序--hez87")(prin1)---------------------------------------------------------------范文最新推荐------------------------------------------------------ 财务管理工作总结[财务管理工作总结]2009年上半年,我们驻厂财会组在公司计财部的正确领导下,在厂各部门的大力配合下,全组人员尽“参与、监督、服务”职能,以实现企业生产经营目标为核心,以成本管理为重点,全面落实预算管理,加强会计基础工作,充分发挥财务管理在企业管理中的核心作用,较好地完成了各项工作任务,财务管理水平有了大幅度的提高,财务管理工作总结。

CAD系统变量与LISP函数摘要

CAD系统变量与LISP函数摘要
本系统变量显示当前的主拼写词典的文件名。该文件被放置在support目录下,因此不显示完整路径。
可以使用SETVAR指定缺省的主拼写词典。当出现提示之后,可以输入关键字为DCTMAIN指定新值。
DELOBJ
类型:整型
保存方式:图形
初始值:1
本系统变量控制是从图形数据库中将用于创建其他对象的对象删除还是将其保留。
CVPORT
类型:整型
保存方式:图形
初始值:2
本系统变量设置当前视口的标识号。如果要改变此值从而改变当前的视口,则需满足以下条件:
·指定的标识号表示一个活动的视口。
·执行中的命令没有锁定光标阻止它移向该视口。
·数字化仪模式为关闭。
D
DATE
(只读)
类型:实型
保存方式:无
本系统变量存储当前日期和时间,此值用一种专用格式表示:
BLIPMODE
类型:整型
保存方式:图形
初始值:0
本系统变量控制点标记是否可见。
0关闭点标记模式
1打开点标记模式
C
CDATE
(只读)
类型:实型
保存方式:无
本系统变量设置日历的日期和时间。
CECOLOR
类型:字符串
保存方式:图形
初始值:"BYLAYER"
本系统变量设置新对象的颜色。
CELTSCALE
类型:实型
保存方式:无
本系统变量存储由ACAD环境变量指定的目录路径(如果有的话),如果需要则添加路径分隔符。
ACADVER
(只读)
类型:字符串
保存方式:无
本系统变量存储AutoCAD版本号,其值可能为14或14a。这个变量与DXF文件标题变量$ACADVER不同,$ACADVER包含图形数据库的级别号。

CADLISP函数

CADLISP函数

CADLISP语言数据类型1.表2.文件描述符3.实体名4.选择集5.内部函数(Auto LISP子程序)赋值与数值计算函数1.(1+ 数) 加1函数2.(1- 数) 减1函数3.(abs 数)求绝对值4.(max数数……)求最大数5.(min数数……)求最小数6.(sqrt数)求平方根7.(expt数幂)乘方8.(exp 幂)e的任意次方9.(log数)对数10.(sin 角)正弦函数11.(cos角)余弦12.(atan数1[数2])反正切函数13.(rem数1 数2)求余数14.(gcd数数……)最大公约数15.(~ 整数)求补注:用pi表示圆周率π16.(logand数数……)按位逻辑”与”函数17.(logior数数……)按位逻辑”或”函数18.(~ 数)按位逻辑”非”函数19.(and 表达式……)逻辑”与”函数20.(or 表达式……)逻辑”或”函数21.(not 表达式)逻辑”非”函数22.(lsh 数位数)位移函数23.(boole 方式数1 数2……)布尔运算。

方式有16种,如1为and,6为xor(异或),7为or,8为not等。

24.(= 原子原子……)等于函数25.(/= 原子原子)不等于函数26.(< 原子原子)小于函数27.(<= 原子原子)小于等于函数28.(> 原子原子)大于函数29.(>= 原子原子)大于等于函数30.(atom 项)原子测试31.(listp 项)表测试32.(boundp 原子)原子值测试33.(null 项)空测试34.(numberp 项)数值测试35.(minusp 项)负值测试36.(zerop 项)零测试37.(eq 式1 式2)相同表达式测试38.(equal式1 式2)相等测试39.(wcmatch 字符串模式)字符匹配测试分支与循环1.(if 条件式1[式2])若条件为真,则执行式1;否则执行式2。

2.(cond(条件1 式1……)(条件2 式2……)……)分支函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CADLISP语言数据类型1.表2.文件描述符3.实体名4.选择集5.内部函数(Auto LISP子程序)赋值与数值计算函数1.(1+ 数) 加1函数2.(1- 数) 减1函数3.(abs 数)求绝对值4.(max数数……)求最大数5.(min数数……)求最小数6.(sqrt数)求平方根7.(expt数幂)乘方8.(exp 幂)e的任意次方9.(log数)对数10.(sin 角)正弦函数11.(cos角)余弦12.(atan数1[数2])反正切函数13.(rem数1 数2)求余数14.(gcd数数……)最大公约数15.(~ 整数)求补注:用pi表示圆周率π16.(logand数数……)按位逻辑”与”函数17.(logior数数……)按位逻辑”或”函数18.(~ 数)按位逻辑”非”函数19.(and 表达式……)逻辑”与”函数20.(or 表达式……)逻辑”或”函数21.(not 表达式)逻辑”非”函数22.(lsh 数位数)位移函数23.(boole 方式数1 数2……)布尔运算。

方式有16种,如1为and,6为xor(异或),7为or,8为not等。

24.(= 原子原子……)等于函数25.(/= 原子原子)不等于函数26.(< 原子原子)小于函数27.(<= 原子原子)小于等于函数28.(> 原子原子)大于函数29.(>= 原子原子)大于等于函数30.(atom 项)原子测试31.(listp 项)表测试32.(boundp 原子)原子值测试33.(null 项)空测试34.(numberp 项)数值测试35.(minusp 项)负值测试36.(zerop 项)零测试37.(eq 式1 式2)相同表达式测试38.(equal式1 式2)相等测试39.(wcmatch 字符串模式)字符匹配测试分支与循环1.(if 条件式1[式2])若条件为真,则执行式1;否则执行式2。

2.(cond(条件1 式1……)(条件2 式2……)……)分支函数。

如:(cond((minusp a)(- a))(T a))求a的绝对值。

注:cond是AutoLISP中最基本的条件函数,由它为核心构成的自定义函数可以实现循环和递归等功能。

3.(repeat 次数式1 式2 ……)重复函数。

将多个表达式重复执行多次。

4.(while 条件式1 式2 ……)循环函数。

条件为真,执行表达式。

否则结束循环。

如:(setq s 0 a 1)(while(<a 101)(setq s(+ s a))(setq a(1+ a)))(print s) 计算0~100之间所有整数的和。

5.(progn 式1 式2 ……)求多个表达式值函数。

在只能用一个表达式的地方,使用他可完成多个表达式的计算。

如if 语句中字符串与类型转换函数1.(ascii 字符串)ASCII码转换2.(chr 整数)字符转换3.(strcat 字符串……)字符串连接4.(strlen 字符串……)字符串长度测试5.(substr 字符串起点 [长度])取子字符串。

如果不设置长度,则取到最后一个字符。

6.(strcase 字符串 [方式])字符串大小写转换。

若指定了方式且非空(NIL),则把所有的字母转换为小写;否则转换为大写。

7.(float 数)整型变实型8.(fix 数)实型变整型9.(itoa 整型数)整型变字符串10.(atoi 字符串)字符串变整型11.(atof 字符串)字符串变实型12.(angtos 角方式精度)角度单位转换。

“角”是以弧度为单位的实数,转换为其它单位,返回一个字符串。

该字符串是以“方式”和“精度”的要求,按AutoCAD的系统变量UNITMODE(单位模式)对“角”进行处理得到的,“精度”为小数点后的位数。

“方式”有:0为度,1为度/分/秒,2为梯度,3为弧度等。

13.(rtos 数方式精度)实数计数制转换。

方式:1为科学计数法,2为十进制,3为工程制(英寸与小数英寸),4为建筑制(英寸与分数英寸)14.(cvunit 值旧单位新单位)单位制转换。

单位名称可以是acad.unt文件中给出的任意单位格式,否则返回NIL(trans 点旧坐标系新坐标系)坐标转换。

坐标:0为WCS(世界坐标系),1为UCS(用户坐标系),2为DCS(显示坐标系)表处理函数1.(quote 表达式)引用函数。

作用:告诉程序不要对后面的表达式求值。

如:(quote(x y z))可简写为’(x y z)2.(car 表)取表中的第一个元素3.(cdr 表)取子表函数。

返回除第一个元素以外的所有元素组成的新表4.由car与cdr组合而成的函数car与cdr是取表元素的基本函数。

这两个函数可以组合起来使用,从而获得表中的其它元素,例如 cadr。

这种组合最多可达四级,即最多六个字符,如 caddar。

AutoLISP执行这组合函数时先从后面做起。

例如:(caddr ’(1 2 3))返回3(caddr ’(a (b c) d))返回(c)也就是说,若L为一张表,则有:(cadr ’L)〈=〉(car(cdr L))(cdadar ’L)〈=〉(cdr(car(cdr(car ’L))))5.(last 表)取表中最后一个元素6.(nth n 表)取表中第n个元素(第一个元素的序号为0)7.(list 表达式……)建立表函数8.(length 表)测量表长9.(append 表1 表2 ……)连接表函数10.(cons 新元素表)向表中添加元素11. (subst 新项旧项表)元素替换函数12.(reverse 表)表倒置函数13.(assoc 关键字关联表)assoc 函数。

该函数在“关联表”中搜索“关键字”,并返回关联表中对应元素。

搜索无结果,则返回NIL14.(member 表达式表)member函数。

该函数在“表”中搜索“表达式”,并返回一张由第一次出现的“表达式”及其后面所有元素构成的新表。

15.(foreach 变量名表表达式……)foreach函数。

该函数依次将“表”中的每个元素的值赋给“变量名”对表中的每个元素计算每个表达式的值。

函数返回最后一个表达式的计算结果。

16.(apply 函数表)Apply函数。

以表为变元,执行“函数”给定的函数。

如:(apply ’+’(1 2 3))返回 6(apply ’strcat’(“a”“b”))返回“ab”Apply既可用于内部函数,也可用于用户定义的函数。

17.(mapcar 函数表1 表2……)mapcar 函数。

它执行“函数”给定的函数,并以后面各表中的每个元素作为函数的变元。

如:(mapcar ’1+’(10 20 30))返回(11 21 31)(mapcar ’+’(10 20 30)’(4 3 2))返回(14 23 32)▲Apply函数的操作对象是单个表中的所有元素;mapcar函数则每次只处理多个表中的对应元素,依次处理,直到结束。

自定义函数1.defun函数格式:(defun 函数名变量表表达式……)其中变量表被一个前后均有空格的斜杠符号“ / ”分成两部分(形参 / 局部变量):形参在调用函数时接受参数传递而转换为实参;局部变量仅用于函数内部1)变量表可以是空格,此时调用函数时无参数传递。

2)变量表中的形参与局部变量均只在所定义的函数中起作用,甚至可以与某外部变量同名,而不会对外部变量造成任何影响2.defun函数定义AutoCAD新命令格式:(defun C:命令名()表达式……)其中:“命令名”前必须有“C:”,后面必须带一张没有形参的变元表。

mbda函数格式:(lambda 变元表表达式……)该函数定义一个无名函数。

在经常需要使用某一表达式,而又没必要用defun将它定义为一个新函数时,可使用lambda来完成这个任务。

它返回最后一个表达式的值,且经常与apply和mapcar一起使用。

如:(apply ’(lambda (x y z )(* x(- y z)))’(5 20 14))返回30,即5*(20-14)。

又如:(mapcar ’(lambda (x)(* x 5))’(2 4 -6 10.2))返回(10 20 -30 51.0)数据交换及相关的计算函数1.(getint [提示]) 整数输入函数2.(getreal [提示]) 实数输入函数3.(getstring [cr] [提示]) 字符串数输入函数。

字符串最大长度为132个字符。

如果提供了cr且cr不为NIL,则输入的字符串中可以有空格,此时只有用回车来终止输入,否则可以用空格终止输入。

4.(getpoint [基点] [提示]) 点输入函数5.(getdist [基点] [提示]) 距离输入函数。

等待用户输入一个距离值或用光标输入两个点,返回两点间的距离。

若有基点,则只需再输入一个点,该点与基点间的距离就是输入的值。

6.(getcorner 基点 [提示]) 矩形对角点输入函数。

他必须有基点,且当用户移动光标时,屏幕上画一个由基点和当前光标点为对角点的矩形。

7.(getangle [基点] [提示]) 角度输入函数。

等待用户输入一个角度,并将该角以弧度值返回。

度量角度时,以变量ANGBASE设置的当前角度为零弧度,逆时针方向为正。

用户可以键盘输入角度。

也可以指定屏幕上两个点的方式输入角度,此时两点间连线与零度基准线的夹角就是输入的角度。

若指定了“基点”,则可输入一个点来获取角度。

后两种方式屏幕上会出现拖动线。

8.(getorient [基点] [提示]) 方位角输入函数。

和getangle唯一不同的是getorient的零度基准方向是水平向右的9.(initget [位值] [关键字符串])输入控制函数。

该函数为其后使用getХХХ函数建立各种选项。

“位值”控1 关键字2 关键字3,缩写……”。

每个关键字间用空格分隔,逗号后面是缩写部分。

有两种方式定义关键字的缩写:一是把保留的缩写字母大写,其余部分全用小写字母;二是缩写字母放在整个关键字后面(全部用大写字母表示缩写),并用逗号将它们分隔开。

注意:iniget建立的控制标记和关键字表只对紧跟其后的getХХХ函数产生作用,然后被自动清除。

此外,iniget 函数不用于getstring和getvar函数。

10.(getkword [提示])关键字输入函数。

要求用户输入一个关键字。

在调用本函数之前需先用iniget函数设置一个关键字表。

Getkword把与用户输入相匹配的关键字作为字符串返回。

11.(angle 点1 点2)求方位角函数。

返回弧度值。

12.(distance 点1 点2)求两点间距离函数。

相关文档
最新文档