ZZXXQQ
发表于 2009-9-1 19:29:00
1、用entget函数选取图线;<br/>2、在grread函数循环中使用entget中的点作为上一点,动态的用grdraw函数将鼠标当前点画线;同时根据两点的距离动态更改线条的线性比例。
jxlsp
发表于 2009-9-1 20:15:00
fl202发表于2009-9-1 15:13:00static/image/common/back.gif其实这样的用途更大,这个没有规范要求是多少,具体倍数放大的话要试好几次才能得到比较满意的效果。而用这个程序一次即可得到满意的效果。
<p>你这只是视觉上的效果,而图是要打印出来用的,规范有严格要求实部多长,虚部多长,所以只有输入放大倍数才能满足要求.</p>
贱人
发表于 2009-9-2 00:47:00
有意思,仿制一下:);;动态调节线性比例,仿制userzhl的程序
;;加入对比例为0和1时的判断,防止因1时无组码48,0时总是无法获得正确比例的容错处理
;;贱人20090902
(defun c:aa( /ss ssn en e48pt1 dist M new48 ViewDist i newen Y-get-eyeshot )
(defun Y-get-eyeshot (/ );$orr)
(setq rt '()
ptctr (getvar "viewctr")
vph (getvar "viewsize")
vps (getvar "screensize")
ratio (/ (car vps) (cadr vps))
vpw (* ratio vph)
)
(setq ptlb
(list
(- (car ptctr) (/ vpw 2))
(- (cadr ptctr) (/ vph 2))
)
)
(setq ptrt
(list
(+ (car ptctr) (/ vpw 2))
(+ (cadr ptctr) (/ vph 2))
)
)
(setq rt (list ptlb ptrt))
)
;---
(setq ss (ssget ":s:e" '((0 . "Arc,Circle,Line,LWPOLYLINE"))))
(if ss
(progn
(setq ssn (ssname ss 0)
en(entget ssn)
)
(if (not (setq e48 (cdr (assoc 48 en))))
(progn
(setq e48 1
newen (list (car en))
en (cdr en)
i 0
)
(repeat 8
(setq newen (cons (car en) newen)
en(cdr en)
i(+ i 1)
)
)
(setq newen (cons (cons 48 1) newen)
newen (reverse newen)
en (append newen en)
newen nil
)
)
)
(setq pt1 (getpoint "\n指定点:"))
(if pt1
(while (/= (car (setq M (grread T 5 0))) 3)
(setq dist (distance pt1 (cadr M))
ViewDist (distance (car (Y-get-eyeshot)) (cadr (Y-get-eyeshot)))
)
(if (= dist 0)
(setq dist 0.01)
)
(if (= e48 0)
(setq new48 (* (/ dist ViewDist) 100 0.1 1))
(setq new48 (* (/ dist ViewDist) 100 0.1 e48))
)
(entmod (subst (cons 48 new48) (cons 48 e48) en ))
)
)
)
)
(princ)
)
AMTONNY
发表于 2009-9-2 07:12:00
<p></p><p>(command "change" p1 "" "p" "color" "252" "ltype"( "DASHED2"此处为线型)</p><p><br/> (if (<= hh 0.7 )此数据为线长,楼主自已改吧</p>
AMTONNY
发表于 2009-9-2 07:14:00
<p></p><p>再来一个自动的</p>
5061220
发表于 2009-9-2 09:56:00
<p>学习动态修改</p>
lijiao
发表于 2009-9-2 10:19:00
(getpoint (getpoint))
AMTONNY
发表于 2009-9-2 12:46:00
呵呵,宝贝已经被锁住了,应该要好好地反省下自已的言行哦,光说不练,连个小程序也要人家加他QQ收费,如何还打出一个:取之于明,用之于明哦.
jxlsp
发表于 2009-9-2 17:25:00
贱人发表于2009-9-2 0:47:00static/image/common/back.gif有意思,仿制一下:);;动态调节线性比例,仿制userzhl的程序;;加入对比例为0和1时的判断,防止因1时无组码48,0时总是无法获得正确比例的容错处理;;贱人20090902(defun c:aa( / ss ssn en
</div><p>帮你加了根檬皮线.</p>
fl202
发表于 2009-9-3 08:22:00
jxlsp发表于2009-9-1 20:15:00static/image/common/back.gif你这只是视觉上的效果,而图是要打印出来用的,规范有严格要求实部多长,虚部多长,所以只有输入放大倍数才能满足要求.
<p>请问是哪个规范规定的?标准号是多少?</p><p>我是做化工设计的,这个专业的规范上好像没有这方面的规定。同时感谢楼上几位给的程序和思路,谢谢!</p>