插入图框程序
图一
图二
(defun c:t8 ()
(setvar "cmdecho" 0)
(setq pt1 (getpoint "-->请选取图框左下角点:\n"))
(setq pt2 (getcorner pt1 "-->请选取图框右上角点:\n"))
(setq disx (abs (- (car pt1) (car pt2))))
(setq disy (abs (- (cadr pt1) (cadr pt2))))
(setq acx(/ disx 385.00))
(setq acy(/ disy 232.00))
(if (> acy acx)
(setq acx acy))
(setq acx (*(fix (+ (* acx 10) 0.9999)) 0.1))
(setq pt0 (list (/ (+ (car pt1 ) (car pt2) (* (- 0 8) acx)) 2.00)
(/ (+ (cadr pt1) (cadr pt2) (* (- 0 23.6) acx)) 2.00)))
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(command "insert""t8.dwg" pt0 "x" acx "" "" "" )
(setvar "osmode" os)
(princ)
)
附件:文件
图框样本
在输入T8选取文件左下角,再选取文件右上角结果显示如图一;
现想法是如何使图框样本随光标移动,如何才能达到图二的效果,请高手指点,谢谢。
726613 发表于 2013-5-6 20:46 static/image/common/back.gif
执行之后,还是跟图一差不多
图框和代码修正了你再试试 试试下面的应该能行
(defun c:t8 ()
(setvar "cmdecho" 0)
setq pt1 (getpoint "-->请选取图框左下角点:\n"))
(setq pt2 (getcorner pt1 "-->请选取图框右上角点:\n"))
(setq disx (abs (- (car pt1) (car pt2))))
(setq disy (abs (- (cadr pt1) (cadr pt2))))
(setq acx(/ disx 385.00))
(setq acy(/ disy 232.00))
(if (> acy acx)
(setq acx acy)
)
(setq acx (*(fix (+ (* acx 10) 0.9999)) 0.1))
(setq acc (rtos acx 2 1))
(setq pt0 (list (/ (+ (car pt1 ) (car pt2) (* (- 0 0) acx)) 2.00)
(/ (+ (cadr pt1) (cadr pt2) (* (- 0 0) acx)) 2.00)))
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(command "insert""t8.dwg" pt0 "x" acx "" acc "")
(setvar "osmode" os)
(princ)
) 把pt0改成 pause试试! 楼主。请问你这个如何使用?
yaokui25 发表于 2013-5-5 22:25 static/image/common/back.gif
试试下面的应该能行
(defun c:t8 ()
(setvar "cmdecho" 0)
谢谢您指点,不过还是不能实现。谢谢 726613 发表于 2013-5-6 20:10 static/image/common/back.gif
谢谢您指点,不过还是不能实现。谢谢
是否接近你想要的,执行之后结果如何? yaokui25 发表于 2013-5-6 20:37 static/image/common/back.gif
是否接近你想要的,执行之后结果如何?
执行之后,还是跟图一差不多 yaokui25 发表于 2013-5-6 21:21 static/image/common/back.gif
图框和代码修正了你再试试
我是点左下角(即原点),再点右上角,我需要的效果是如图二。不过还是要谢谢您 本帖最后由 yaokui25 于 2013-5-6 21:37 编辑
726613 发表于 2013-5-6 21:28 static/image/common/back.gif
我是点左下角(即原点),再点右上角,我需要的效果是如图二。不过还是要谢谢您
现在的图框和代码能满足你的要求啊
图二的效果达到了
页:
[1]
2