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 (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 (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 '')

(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))

)

(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))

;;取得线段两端的中点

(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程序

(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' 0)

(command 'UNDO' 'G')

(prompt '选择图形')

(setq A (ssget '((62 . 1)) ))

(if (/= A nil)(progn

(setq M (sslength A))

(command 'erase' A '')

(princ '\n共删除红色图元个')

))

(command 'UNDO' 'E')

(princ) )

这样,键入 D1 命令,就可以删除红色的图元了.

cad简化螺纹lisp_几个CAD很有用的lisp程序_强劲动力相关推荐

  1. cad简化螺纹lisp_二维螺纹的AutoLISP工具

    二维螺纹的绘制虽然不难不过绘制过程比较繁琐,这里天堂供的这款二维螺纹的AutoLISP工具可以让你通过AutoCAD的AutoLISP工具轻松绘制二维螺纹,节省很多效率. 使用方法: 1.先建二个图层 ...

  2. 地籍cad的lisp程序大集合_几个CAD很有用的lisp程序

    1.计算所有线段总长度(加载后只需框选所有线段便可得出这些线段的总长度) (defun c:LL () (setvar "cmdecho" 1) (setq en (ssget ( ...

  3. cad抛物线曲线lisp_如何用CAD画正弦曲线????有lisp的最好。。。谢谢了

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 打开CAD,依次点击菜单"工具→AutoLISP→Visual LISP编辑器",新建文件,输入以下代码:(defun C:draws ...

  4. cad线段总和lisp_晓东CAD家园-论坛-LISP/VLISP程序库-[LISP程序]:文本工具:面积文字累加求和 - Powered by Discuz!...

    [FONT=courier new] (princ "\nc:txta===面积文字累加求和---txtas设置--------lxx.2001.5") (princ " ...

  5. cad抛物线lisp程序_数控车宏程序编程实用干货,全在这里了...

    跟着数控技术的快速开展以及数控车技术大赛的举行,在数控车竞赛中会经常遇到复杂概括的加工,如椭圆.抛物线.双曲线等,选用常规的数控编程指令,需求计算每个节点的坐标值,不但计算量大.精度差.编程速度慢,并 ...

  6. 发现几个很有用的开源程序/库。。

    uDown其实是区区打算开发的一个下载管理器,现在这个下载管理器只活在区区一个人的脑子 (brain child?) 前两天编译了 WxWidget,因为打算用这个开源的GUI模架实现窗口GUI. 接 ...

  7. 打散线条lisp_几个很有用的CAD的lisp程序

    1.计算所有线段总长度(加载后只需框选所有线段便可得出这些线段的总长度) (defun c:LL () (setvar "cmdecho" 1) (setq en (ssget(l ...

  8. cad高程标注插件lisp_【源码】CAD高程转标高,CAD插件大全,小懒人CAD工具箱

    [源码]CAD高程转标高,CAD插件大全,小懒人CAD工具箱 CAD,CAD插件,CAD标高 CAD快速标高插件 ;;;功能:高程点转标高 ;;;逆流而上的鱼制作 (defun c:tt();;; ( ...

  9. cad引出线段lisp_利用lisp给CAD直线取整?

    回答: 1.计算所有线段总长度(加载后只需框选所有线段便可得出这些线段的总长度) (defun c:LL () (setvar "cmdecho" 1) (setq en (ssg ...

最新文章

  1. 国内外有哪些不错的需求管理工具?如何选择?
  2. jquery的ajax()函数传值中文乱码解决方法介绍
  3. 面试必问:如何访问 Redis 中的海量数据?
  4. [改善Java代码]减少HashMap中元素的数量
  5. 无招胜有招之spring _高频面试题
  6. 这个回答让我错失offer!offer拿到手软
  7. 【Unity开源项目精选】Entitas:Unity DOTS的先行者
  8. 为什么很多国产手机模仿苹果手机的设计,唯独home键没人模仿?
  9. mac上安装mongoDb以及简单使用
  10. 【微信技术-微信小程序】------ 使用ColorUI组件简单入门
  11. 常见色彩表(RGB)
  12. linux 搭建离线下载文件,不经意间用wget给自己搭建了一个离线下载服务器
  13. makefile终极目标
  14. markdown如何生成一级标题
  15. 国内jQuery CDN
  16. Md5+salt实现用户加密
  17. 抖音直播间弹幕rpc学习
  18. 安装验证jmeter是否成功
  19. 逆向破解思路和获取app的代码,脱壳操作(四)
  20. 20220707拖把更名器的正则表达式的使用

热门文章

  1. 索引推荐神器Paw Index Advisor使用手册(2)-语法支持
  2. 赛孚耐SafeNet开发狗超级狗开发入门
  3. 赛孚耐SafeNet开发狗超级狗程序外壳加密
  4. 2.测量2N2222A三极管输出电压uo随输入电压ui变化的情况
  5. TYVJ1338 QQ农场
  6. 众昂矿业刘金海:多彩萤石成为矿物收藏界的挚爱
  7. DMU-多性状动物模型-学习笔记4
  8. C#Net开发 手机网站和普通网站有什么区别
  9. Merkle trees vs Verkle trees
  10. 【干货】企业邮箱退信严重,被列入黑名单了吗?