iCAx开思网
标题:
AUTO CAD的长度尺寸驱动 程序
[打印本页]
作者:
corlor
时间:
2010-4-21 22:43
标题:
AUTO CAD的长度尺寸驱动 程序
网上有很多关于AUTO CAD的长度驱动程序,但都是有一点小问题,今天我把改后的程序发给大家,
该程序只能驱动长度尺寸。希望有高手能够编出能驱动角度尺寸、圆直径尺寸等的程序来跟大家分享。
下面的程序使用方法:将下面的程序复制到txt文档中,保存为“xxx.lsp”格式的文件。然后打开AUTO CAD软件,在“工具”中选“加载应用程序”找到保存好的“xxx.lsp”文件,确定即可加载成功。使用时,在命令行中输入“tt”即可,选择长度尺寸标准,更改数值,线的长度自动就会更改。
(defun c:tt(/ BLB EP ESPL N-EP N-SP NEW-T SD SD-DXF SEA SEB SP SS1 SS2 SS3)
(setq SD (entsel "\n选择驱动尺寸:"))
(if SD
(PROGN
(SETQ SD-DXF (ENTGET (CAR SD)))
(WHILE (NOT (wcmatch (CDR (ASSOC 0 SD-DXF)) "*DIM*"))
(setq SD (entsel "\n选择驱动尺寸:"))
(SETQ SD-DXF (ENTGET (CAR SD))))
(SETQ SP (CDR (ASSOC 13 SD-DXF))
EP (CDR (ASSOC 14 SD-DXF))
ESPL (DISTANCE SP EP)
SEA (ANGLE SP EP)
SEB (ANGLE EP SP)
NEW-T (getdist "\n新的长度:"))
(while (eq nil NEW-T)
(setq NEW-T (getdist "\n新的长度:")))
(if NEW-T
(progn
(setq BLB (* 1 (abs (- NEW-T ESPL))))
(if (> ESPL NEW-T )
(setq N-SP (POLAR SP SEA BLB)
N-EP (POLAR EP (+ PI SEA) BLB))
(setq N-SP (POLAR SP SEB BLB)
N-EP (POLAR EP (+ PI SEB) BLB))
)
(setvar "osmode" (logior (getvar "osmode") 16384))
(setvar "cmdecho" 0)
(vl-cmdf "_.undo" "_group")
(SETQ SS1 (SSGET "C" (POLAR SP (+ PI (* 0.25 PI)) 0.4)(POLAR SP (* 0.25 PI) 0.4))
SS2 (SSGET "C" (POLAR EP (+ PI (* 0.25 PI)) 0.4)(POLAR EP (* 0.25 PI) 0.4))
)
(IF SS1
(COMMAND "STRETCH" (SSGET "C" (POLAR SP (+ PI (* 0.25 PI)) 0.4)(POLAR SP (* 0.25 PI) 0.4))
""SP N-SP))
(IF SS3
(COMMAND "STRETCH" (SSGET "C" (POLAR EP (+ PI (* 0.25 PI)) 0.4)(POLAR EP (* 0.25 PI) 0.4))
""EP N-EP))
(vl-cmdf "_.undo" "_end")
(setvar "osmode" (logand (getvar "osmode") 49151))
(PRINC"\n尊重原创, 更改:DEWEY\n尺寸驱动程序运行完毕, 能编出角度等驱动程序的请发贴与大家分享.谢谢!")))
)
)
(princ)
)
本帖最后由 corlor 于 2010-4-21 22:47 编辑
作者:
gxjh
时间:
2010-4-22 16:38
学习学习
作者:
hhxxttxs
时间:
2010-4-27 15:42
谢谢楼主,程序能用,请问能控制方向吗?
欢迎光临 iCAx开思网 (https://www.icax.org/)
Powered by Discuz! X3.3