- UID
- 215173
- 积分
- 411
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2005-1-29
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
(defun hy_polyinp(poly / poly1 p1 p2 anglep1 anglep2 line dist1 needpoint
pointlist basedis nedis shpoint yourpoint)
(setvar "osmode" 0)
(setq poly1 (vlax-ename->vla-object poly))
(vla-getboundingbox poly1 'p1 'p2)
(setq p1 (vlax-safearray->list p1)
p2 (vlax-safearray->list p2)
anglep1 (angle p1 p2)
anglep2 (angle p2 p1)
p1 (polar p1 anglep2 5)
p2 (polar p2 anglep1 5))
(command "undo" "be")
(command "line" p1 p2 "")(setq line (entlast))
(command "trim" poly "" (list line p1) "")
(setq line (entlast))
(setq dist1 (vla-get-length (vlax-ename->vla-object line)))
(setq needpoint (polar p2 anglep2 dist1))
(foreach item (hy_interpoint line poly)
(if (equal needpoint item 0.00001)
(setq pointlist(vl-remove item (hy_interpoint line poly)))
)
)
(setq basedis (distance needpoint (nth 0 pointlist)))
(foreach item pointlist
(if (<= (setq nedis (distance needpoint item)) basedis)
(progn (setq basedis nedis)
(setq shpoint item))
)
)
(setq yourpoint (list (/ (+ (car needpoint) (car shpoint)) 2)
(/ (+ (cadr needpoint) (cadr shpoint)) 2)
0)
)
(vla-delete (vlax-ename->vla-object line))
(command "undo" "e")
yourpoint
)
(defun hy_interpoint(object1 object2 / jdtb);;返回兩圖元交點
(vl-load-com)
(setq jdtb (vla-intersectwith (vlax-ename->vla-object object1) (vlax-ename->vla-object object2) acExtendnone))
(setq jdtb (vlax-safearray->list (vlax-variant-value jdtb)))
(hy_ocom jdtb 3)
)
(defun hy_ocom(totlist num / needlist shuldlist numer stay);;處理數據列表分組每一組為NUM個,余項也為組
;;FOR EXCAMPLE: (hy_ocom '(-64.4309 100.541 0.0 -106.992 144.345 0.0 1 2) 3)
;;return : ((-106.992 144.345 0.0) (-64.4309 100.541 0.0) (1 2))
(setq needlist totlist)
(setq shuldlist nil)
(if (> (length totlist) num)
(progn
(setq stay (rem (length totlist) num))
(setq numer (/ (- (length totlist) stay) num))
(repeat numer
(setq shuldlist (cons (hy_ijlist needlist 0 num) shuldlist))
(setq needlist (hy_ijlist needlist (- num 1) nil))
)
(setq shuldlist (reverse shuldlist))
(if (/= stay 0) (setq remlist (reverse(hy_ijlist (reverse totlist) 0 stay))
shuldlist (append shuldlist (list remlist))))
shuldlist
)
nil)
)
抛砖引玉,,,,希望大家一起交流!!!! |
|