[求助]请高手添加:将计算结果保存至剪贴板
<p><font face="Verdana" color="#0000ff"><strong></strong></font> </p><p><font face="Verdana"><strong></strong></font> </p>
<p><font face="Verdana" color="#ff0000" size="4"><strong>下面这段程序由网络收集,感谢原作者!</strong></font></p>
<p><font face="Verdana"></font><strong><font color="#0000ff"> </font></strong></p>
<p><font face="Verdana" color="#0000ff"><strong> 请求高手在保持原程序功能不变的情况下添加:“将程序计算结果自动复制到剪贴板,按回车或空格键退出”的功能。谢谢!<br/><font color="#99cc00"></font></strong></font></p>
<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> 自己顶一下。。。 <p>用这个函数改造到VBA用就可以。</p>
<p><font face="Verdana">http://bbs.mjtd.com/forum.php?mod=viewthread&tid=29218</font></p>
(defun c:jxjs (/ p1 p2 dx dy ox jd fx dcl_1 jdt i)
(vl-load-com)
(defun PutClipText (str / html result)
(if (= 'STR (type str))
(progn
(setq html (vlax-create-object "htmlfile")
result (vlax-invoke
(vlax-get (vlax-get html 'ParentWindow)
'ClipBoardData
)
'setData
"Text"
str
)
)
(vlax-release-object html)
str
)
)
)
;;;(command "undo" "be")
;;;(initget 1)
(setq jdt "")
(setq i 0)
(while (and (setq p1 (getpoint "\n请选择两圆弧交点:<回车或空格键退出> "))
(setq p2 (getpoint "\n请选择圆心: "))
)
(progn
;;; (initget 1)
(setq dx (- (car p2) (car p1))
dy (- (cadr p2) (cadr p1))
ox (sqrt (+ (* dx dx) (* dy dy)))
;;;两点间距离
jd (/ (* (* 2 (- (/ pi 4) (atan ox 25))) 180) pi)
;;;两结构面交线的倾角
fx (- 90 (* (/ (angle p1 p2) pi) 180))
;;;两结构面交线倾向
)
(if (< fx 0)
(setq fx (+ 360 fx))
)
(setq jd (strcat (rtos fx 2 1) "°∠" (rtos jd 2 1) "°"))
(setq jdt (strcat jdt jd "\r\n"))
(princ (strcat "\n两结构面交线的产状: "
jd
" 当前记录:"
(itoa (setq i (1+ i)))
)
)
(PutClipText jdt)
)
)
;;;(setq dcl_1 (load_dialog "bg_jllx.dcl"))
;;;(if (not (new_dialog "dcl_bg_cpt" dcl_1))
;;; (exit)
;;;)
;;;(set_tile "text3" jd)
;;;(action_tile "accept" " (done_dialog) ")
;;;(start_dialog)
;;;(unload_dialog dcl_1)
;;;(command "undo" "e")
(princ)
)
完全达到应用要求,衷心感谢给予帮助的好心人!! 好,正需要
页:
[1]