用下面的这个程序可以,加载后执行命令:mulen
(defunc:mulen()
(setqi1s0)
(prompt
选择直线:)
(setqss(ssget))
(setqleng(sslengthss))
(setqnamelist(list(ssnamess0)))
(repeat(1-leng)(setqnamelist(appendnamelist(list(ssnamess
i))))(setqi(1+i)))
(foreachnamenamelist
(setqnameall(entgetname))
(setqps(cdr(assoc10nameall)))
(setqpe(cdr(assoc11nameall)))
(setqpsx(carps))
(setqpsy(cadrps))
(setqpsz(caddrps))
(setqpex(carpe))
(setqpey(cadrpe))
(setqpez(caddrpe))
(setqx(-psxpex))
(setqy(-psypey))
(setqz(-pszpez))
(setqlength(sqrt(+(exptx2)(expty2)(exptz2))))
(setqs(+slength))
)
(princ(strcat
直线总长为:(rtoss)))
(princ)
){:em27}
上述为程序内容,然后存为:“文件名.lsp”,再从CAD里用appload命令加载
此文件。
这里有一个程序,你可以用用看,
命令为AM
对line,arc,eispe,spline,polyline,lwpolyline,circle,mline,solid均有效。
你既可统计长度,也可统计面积,或者两者都统计。
如果你对精确位不满意,你可以改动程序中的数字(我已经在程序注释中说明)。
;;;===================
;;;面积和长度统计程序
;;;highflybirdkunming
;;;===================
(prompt命令为:AM)
(defunC:am(/
fssiSSareatotlen
entlen
enamenameobjtext-Stext-LinsPt0heigh
t
insPt1insPt2text-1text-2*APP*DOC*MSP
)
(vl-load-com)
(setq*APP(vlax-get-acad-object))
(setq*DOC(vl-get-activeDocument*APP))
(setq*MSP(vl-get-Modelspace*DOC))
(initget1123)
(setqf(getkword\n请输入你要统计的1面积2长度3两者:))
(if
(and
(setqss(ssget))
(setqinsPt0(getpoint\n请输入文字插入点:))
(setqhei