PhantomFox
发表于 2011-12-13 15:20:40
ahwx0814 发表于 2011-12-13 14:38 static/image/common/back.gif
哈哈,搞定。
感觉上不错~~
能帮忙补充下同时在旁边显示该截面的长、宽尺寸和矩形面积,截面净面积等参数么?
PhantomFox
发表于 2011-12-13 17:28:30
你太有才了
PhantomFox
发表于 2011-12-13 17:31:49
ahwx0814 发表于 2011-12-13 17:11 static/image/common/back.gif
加上了文字了
可以框选 多段线、块、样条曲线等
请教,里面的精度是指的什么意思?
byghbcx
发表于 2011-12-13 17:51:46
(defun tt( / en p1 p2 x y a_min p0 n a ro p11 p22);最小包络矩形
(vl-load-com)
(setq en (car (entsel "\n请选择板件放样体:")))
(if en
(progn
(vla-getboundingbox (vlax-ename->vla-object en) 'p1 'p2)
(setq p1 (vlax-safearray->list p1)
p2 (vlax-safearray->list p2)
)
(setq x (- (car p2) (car p1))
y (- (cadr p2) (cadr p1)))
(setq a_min (* x y))
(setq p0 (mapcar '(lambda (x y) (/ (+ x y) 2.0)) p1 p2))
(setq n 0)
(repeat 360
(command "_.rotate" en "" p0 1)
(vla-getboundingbox (vlax-ename->vla-object en) 'p1 'p2)
(setq p1 (vlax-safearray->list p1)
p2 (vlax-safearray->list p2)
)
(setq x (- (car p2) (car p1))
y (- (cadr p2) (cadr p1)))
(setq a (* x y))
(setq n (1+ n))
(if (< a a_min) (setq a_min a ro n p11 p1 p22 p2))
)
);end progn
);end if
(setq x (- (car p22) (car p11))
y (- (cadr p22) (cadr p11)))
(command "_.rectang" p11 p22)
(command "_.rotate" (entlast) "" p0 (- ro))
(command "_.dimaligned" p11 (polar p11 0 x) (polar p11 (* 1.5 pi) (* 0.1 y)))
(command "_.rotate" (entlast) "" p0 (- ro))
(command "_.dimaligned" p22 (polar p11 0 x) (polar p11 0 (* 1.1 x)))
(command "_.rotate" (entlast) "" p0 (- ro))
(command "_.text" p0 5 0 (strcat "截面净面积为:" (rtos (vla-get-area (vlax-ename->vla-object en)) 2 2)
",矩形面积为:" (rtos a_min 2 2))
"")
(princ)
)
PhantomFox
发表于 2011-12-13 19:02:26
byghbcx 发表于 2011-12-13 17:51 static/image/common/back.gif
(defun tt( / en p1 p2 x y a_min p0 n a ro p11 p22);最小包络矩形
(vl-load-com)
(setq en (car (e ...
运行程序不是tt么?运行不了?
ahwx0814
发表于 2011-12-13 19:55:41
PhantomFox 发表于 2011-12-13 17:31 static/image/common/back.gif
请教,里面的精度是指的什么意思?
看到14#的帖子,发现我的代码有可以改进的地方,能提高速度,明天改了以后发给你。
精度就是计算的次数,如果精度越高计算的时间就越长,矩形框应该会越小!
PhantomFox
发表于 2011-12-13 20:16:36
ahwx0814 发表于 2011-12-13 19:55 static/image/common/back.gif
看到14#的帖子,发现我的代码有可以改进的地方,能提高速度,明天改了以后发给你。
精度就是计算的次数,如 ...
貌似14楼的程序运行不了啊!是直接运行TT吧!没见动静!
byghbcx
发表于 2011-12-14 08:15:05
PhantomFox 发表于 2011-12-13 20:16 static/image/common/back.gif
貌似14楼的程序运行不了啊!是直接运行TT吧!没见动静!
(tt)运行,
PhantomFox
发表于 2011-12-14 09:03:56
byghbcx 发表于 2011-12-14 08:15 static/image/common/back.gif
(tt)运行,
gg,不好意思,俺是初学者,一般不是直接运行函数名就行了么?咋还要加个括号?我去把基本课本看看!
longer1000
发表于 2011-12-14 10:49:48
不错的,收藏