VISUAL LISP 学习笔记.doc_第1页
VISUAL LISP 学习笔记.doc_第2页
VISUAL LISP 学习笔记.doc_第3页
VISUAL LISP 学习笔记.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图层管理1解锁所有图层1解冻所有图层1多义线1修改等高线高层1VISUAL LISP 关于点的命令3图层管理解锁所有图层 (defun UnLock_All_Layers () (vlax-for n (vla-get-layers (vla-get-ActiveDocument (vlax-get-acad-object) ) (vla-put-lock n :vlax-false) )解冻所有图层 (defun UnFreeze_All_Layers () (vlax-for n (vla-get-layers (vla-get-ActiveDocument (vlax-get-acad-object) ) (if (/= (vla-get-name n) (getvar clayer) ;也可以用 (not (equal (vla-get-activelayer adoc) item)判断 (vla-put-Freeze n :vlax-false) ) )多义线修改等高线高层(defun ggcZ (KZ zhi zhi2 / ss ss4 a en end n) (Setq ss (Ssget);返回一个对象(图元)选择集 (if ss (progn (setq ss4 (sslength ss);求选择集的长度 (setq n 0) (while (/= ss4 n) (setq en (ssname ss n);从选择集中选择第n个对象 (setq end (entget en) (setq a (cdr (assoc 0 end) (if (= a LWPOLYLINE) (progn (setq end (subst (cons 38 zhi) (assoc 38 end) end) (entmod end) ) ) (setq n (+ n 1) (if (/= (strcase kz) A) (SETQ ZHI (+ ZHI ZHI2) ) ) ) (princ n未选中目标) )(defun c:ggc () (setq b (getstring n单线修改或全修改(A OR S) ) (IF (= b ) (SETQ b A ) ) (if (= b A) (progn (setq a (getreal n高程欲修改成?) (if a () (setq a 0) ) (SETQ A2 0) ) (progn (setq a (getreal n起始高程欲修改成?) (SETQ A2 (getreal n高程增量?) (if a () (setq a 0) ) (if a2 () (setq a2 5) ) ) ) (ggcZ B a a2) ;改多义线高程-无痕 .2004.1;(chel)(defun chel () (setq elv (getdist n新高程:) (while (and (princ n选则高程多义线(回车退出):) (setq ss (ssget (0 . *polyline) (setq ssv (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object) (vlax-for obj ssv (vlax-put obj Elevation elv) ) )VISUAL LISP 关于点的命令1、定义点信息(1)普通定义方式 (setq pt (2.0 3.0 0.0) ;定义点坐标为(2,3,0),注意此时pt后要加单引号 (setq pt (quote(2.0 3.0 0.0) ;QUOTE函数和的含义相同(2)参数定义方式 如果点坐标为变量参数,则定义方式为 (setq pt (list x y z) 例如 (setq x 2.0 y 3.0 z 0.0) (setq pt (list x y) ;注意此时pt后不能加单引号 结果 pt=(2.0,3.0) LIST函数:将任意数目的表达式组合成一个表,本函数常用于定义二维或三维点变量(由两个或三个实数组成的表) 类似命令: APPEND函数:将任意多个表组合成一个表2、点坐标的提取(1)提取点的X坐标 CAR (setq x_val (car pt) (car list) 返回list 中的第一个元素(2)提取点的Y坐标 CADR (setq y_val (cadr pt) (cadr list) 返回list 中的第二个元素(3)提取点的Z坐标 CADDR (caddr list) 返回list 中的第三个元素(4)CAR与CDR AutoCAD允许CAR与CDR多重嵌套(4层),CAR表示提取第1个值,CDR表示删除第1个值。嵌套过程从后向前,如CDDR表示(cdr(cdr x),则对x列表删除前两个值。若x=(5 5 8 9),则(cddr x)=(8 9);CADR表示(car(cdr x),(cadr x)=(8)。3、测量点的距离 (1)(setq rads (angle pt1 pt2) ; 两点在当前UCS坐标系下XY平面的角度 (2)(setq len (distance pt1 pt2) ; 两点的距离4、ROTS 将数值转换成字符串 (rtos number mode precision) 根据 mode、precision 参数和系统变量 UNITMODE、DIMZIN、LUNITS 和 LUPREC 的设置,rtos 函数返回代表 number 的字符串。 参数: number:数值。 mode:整数,指定现行单位模式。mode 的取值对应于 AutoCAD 系统变量 lunits 的允许值,如下所示: 1 科学 2 小数 3 工程(英尺和十进制英寸) 4 建筑(英尺和分数英寸) 5 分数 precision:整数,指定精度。 示例: (setq

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论