CAD LISP 程序_第1页
CAD LISP 程序_第2页
CAD LISP 程序_第3页
CAD LISP 程序_第4页
CAD LISP 程序_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、.1.计算所有线段总长度(加载后只需框选所有线段便可得出这些线段的总长度) (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

2、(1+ i) (princ 所选线条总长为:)(princ ll)(princ)2.标注所有线段(加载后只需框选所有线段便可得标注这些线段) (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

3、 (list (0 . spline,arc,line,ellipse,LWPOLYLINE)(setq i 0);获取系统参数textsize(setq shh (getvar textsize)(setq str_hh (strcat n文字高度 : )(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

4、 ) (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-va

5、riant-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 (pr

6、ogn (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)

7、 (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 st

8、artPnt1) ) (setq pp2 (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) ;取得线段两端

9、的中点 (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 (get

10、filed 写出文件 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) )(cl

11、ose ff)(princ (strcat n写出文件: ffn)(prin1)5 删除带颜色图元以下程序在别人的贴子里贴过.为了说明问题,今天再贴一次.改颜色的LISP程序(defun c:c1()(ssget)(command chprop p c 1 ) (princ)(defun c:c2()(ssget)(command chprop p c 2 ) (princ)(defun c:c3()(ssget)(command chprop p c 3 ) (princ)(defun c:c4()(ssget)(command chprop p c 4 ) (princ)(defun c:c5()(ssget)(command chprop p c 5 ) (princ)(defun c:c6()(ssget)(command chprop p c 6 ) (princ)(defun c:c7()(ssget)(command chprop p c 7 ) (princ)(defun c:c8()(ssget)(command chprop p c 8 ) (princ)你用C1 命令就可以将图元改为红色了.其余类似.删除红色图元(defun C:D1 (/ m A M) (setq m:err *error* *error* *merr*) (setvar cmdecho

温馨提示

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

评论

0/150

提交评论