搞Net的请求各位兄弟帮忙一个LSP代码功能,选择一条封闭PL,提示里面有多少文字
搞Net的请求各位兄弟帮忙一个LSP代码功能,选择一条封闭PL,提示里面有多少个单行文字,视口什么的都可以不考虑谢谢
;闭合PL内单行文字数
(defun c:bhplts (/ ent pst ss)
(if (setq ent (car (entsel "\n选择闭合PL线")))
(progn
(sfdplxfw ent)
(setq pst (get-pl-ptlst ent))
(if (ssget "wp" pst)
(if (setq ss (ssget "p"'((0 . "TEXT"))))
(sslength ss);返回值,供net调用
0 ;返回值,供net调用
)
0 ;返回值,供net调用
)
)
)
)
;获取PL线所有顶点坐标
(defun get-pl-ptlst (plent / ptlst)
(setqptlst (vl-remove-if '(lambda (x) (/= 10 (car x)))(entget plent)))
(mapcar 'cdr ptlst)
)
;;缩放屏幕到pl线范围-子程序
(defun sfdplxfw (e / l pmzb pst pt1 pt2 pt3 pt4 x x1 x2 xy y y1 y2)
(setq pst (get-pl-ptlst e))
(setq pmzb (qpmzb) ; 屏幕对角点坐标
pt1 (car pmzb)
pt2 (cadr pmzb)
)
(setq l 0
x1 (car pt1)
y1 (cadr pt1)
x2 (car pt2)
y2 (cadr pt2)
)
(repeat (length pst)
(setq xy (nth l pst)
x (car xy)
y (cadr xy)
)
(cond
((< x x1)
(setq x1 x)
)
((< y y1)
(setq y1 y)
)
((> x x2)
(setq x2 x)
)
((> y y2)
(setq y2 y)
)
)
(setq l (1+ l))
)
(setq pt3 (list x1 y1)
pt4 (list x2 y2)
)
(command "zoom" "w" pt3 pt4) ; 缩放屏幕到pl线范围
)随便改了下 试试 多谢分享 print1985 发表于 2016-4-30 12:34 static/image/common/back.gif
随便改了下 试试
多谢兄弟多谢兄弟
页:
[1]