[求助]如何提取选择的文档内容?
<p>在CAD编号的时候漏编了一个数,如何编程能从漏了的哪个数开始全部重新加1或减1。例如:我从1编号到1000,然后我编到100的位置的时候漏编了。当我编完了我才发觉,这时候本来100的位置是空的,101哪里变成了100,如何编程可以把100之后的全部数都增加1啊?</p><p><font face="Verdana">(defun C:ff()<br/>(setq a (car (entsel "\n请选择需要+1的编号:")))<br/> (setq b (entget a))<br/> (setq c (cdr (assoc 0 b)))<br/> (if (= c "MTEXT")</font></p>
<p><font face="Verdana">)</font></p>后面我就不知道该如何提取选择的文档内容
<p>并+1后修改输出</p>
<p>还请高手指点</p> (DEFUN C:ff ()
(PRINT "请选择需要+1的编号:")
(SETQ ss (SSGET))
(IF (/= ss nil)
(PROGN
(SETQ sslen (SSLENGTH ss)
n 0
)
(WHILE (< n sslen)
(SETQ ent (SSNAME ss n)
xdata (ENTGET ent)
lb (CDR (ASSOC 0 xdata))
)
(IF (OR (= lb "TEXT")
(= LB "MTEXT")
)
(PROGN
(SETQ oldzm (ASSOC 1 xdata))
(SETQ txt (ATOF (CDR oldzm)))
(SETQ txt (1+ txt))
(SETQ txt1 (RTOS txt 2 0))
(SETQ zm (CONS 1 txt1))
(SETQ newent (SUBST zm oldzm xdata))
(PRINT newent)
(ENTMOD newent)
)
)
(SETQ n (1+ n))
)
)
)
)
(defun C:ff ()
(if (setq a (car (entsel "\n请选择需要+1的编号:"))) (progn
(setq ent (entget a)
c (cdr (assoc 0 ent)))
(if (wcmatch c "*TEXT") (progn
(setq txt (atoi(cdr(assoc 1 ent)))
txt (1+ txt)
ent (subst (cons 1 (itoa txt)) (assoc 1 ent) ent))
(entmod ent)
(setq txt (1+ txt))
(while (setq ss (ssget "X" (list (cons 0 c) (cons 1 (itoa txt)))))
(setq ss (ssdel a ss)
txt (1+ txt)
a (ssname ss 0)
ent (entget a)
ent (subst (cons 1 (itoa txt)) (assoc 1 ent) ent))
(entmod ent)
)
))
))
(princ)
)
<p> 请求版主帮忙完善下面的程序哦!</p>
<p> </p>
<p> 请在保持原程序功能不变的情况下添加:“将程序计算结果自动复制(或保存)到剪贴板,按回车或空格键退出”的功能。谢谢!<br/></p><font color="#99cc00"></font>
<p><font face="Verdana" color="#0000ff"><strong><font color="#99cc00"></font></strong></font> </p>
<p><font face="Verdana" color="#000000">(defun c:jxjs (/ p1 p2 dx dy ox jd fx dcl_1)<br/> (command "undo" "be")<br/> (initget 1)<br/> (setq p1 (getpoint "\n请选择两圆弧交点: "))<br/> (initget 1)<br/> (setq p2 (getpoint "\n请选择圆心: "))<br/> (setq dx (- (car p2) (car p1))<br/> dy (- (cadr p2) (cadr p1))<br/> ox (sqrt (+ (* dx dx) (* dy dy)));;;两点间距离<br/> jd (/ (* (* 2 (- (/ pi 4) (atan ox 25)))180)pi);;;两结构面交线的倾角<br/> fx (- 90 (* (/ (angle p1 p2 )pi)180));;;两结构面交线倾向<br/> )<br/> (if (< fx 0)<br/> (setq fx (+ 360 fx))<br/> )<br/> (setq jd (strcat (rtos fx 2 1)"°∠" (rtos jd 2 1)"°"))<br/> (princ "\n两结构面交线的产状: ")<br/> (princ jd)<br/> <br/> (setq dcl_1 (load_dialog "bg_jllx.dcl"))<br/> (if (not (new_dialog "dcl_bg_cpt" dcl_1))(exit))<br/> (set_tile "text3" jd)<br/> (action_tile "accept" " (done_dialog) ")<br/> (start_dialog)<br/> (unload_dialog dcl_1)</font></p>
<p><font face="Verdana" color="#000000"> (command "undo" "e")<br/> (princ)<br/>)<br/></font></p> 非常谢谢哦 非常感,解决了我的大麻烦啊,不然我就要一个个的改了 多看一眼,进步一点 应该先对数字文本编组,以后处理漏掉的或多出来的就好办得多 如果可以 如 G-1或 1-G那些都起作用就更加好,
页:
[1]