几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(AutoLISP)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


回复
 
主题工具 搜索本主题 显示模式
旧 2009-04-26, 01:40 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 [求助]怎样获得选择集的中心点

[求助]怎样获得选择集的中心点
www.dimcax.com

请看看这个,写得有点繁琐,不过还算是完成了...
(defun c:test (/ ss)
(vl-load-com)
;; get the selection set .
(princ "\nplease select object:")
(setq ss (vl-catch-all-apply 'ssget))
(if (or (vl-catch-all-error-p ss) (null ss))
(vl-exit-with-value 0)
)
;; get the middle point from the selection set .
(setq pt (getmidpt ss))
(if pt
(foreach n (list "\nthe middle point x=" (car pt) " y=" (cadr pt)) (princ n))
(princ "\n there is error , can't get the middle point...")
)
(prin1)
)
;; the sub function to get the middle point from the selection set .
(defun getmidpt (ss / i lstx lsty vn pt x1 x2 y1 y2)
(setq i 0
lstx '()
lsty '()
)
(repeat (sslength ss)
(setq vn (vlax-ename->vla-object (ssname ss i))
i (1+ i)
)
(setq pt (vl-catch-all-apply 'vla-getboundingbox (list vn 'minpt 'maxpt)))
(if (not (vl-catch-all-error-p pt))
(progn
(setq x1 (vlax-safearray-get-element minpt 0)
x2 (vlax-safearray-get-element maxpt 0)
y1 (vlax-safearray-get-element minpt 1)
y2 (vlax-safearray-get-element maxpt 1)
)
(cond
;; if this is the first time run,then put the value it .
((null lstx)
(setq lstx (list x1 x2)
lsty (list y1 y2)
)
)
;; note here, .
(t
;; x-min .
(if (< x1 (car lstx))
(setq lstx (list x1 (cadr lstx)))
)
;; x-max
(if (> x2 (cadr lstx))
(setq lstx (list (car lstx) x2))
)
;; y-min .
(if (< y1 (car lsty))
(setq lsty (list y1 (cadr lsty)))
)
;; y-max
(if (> y2 (cadr lsty))
(setq lsty (list (car lsty) y2))
)
)
)
)
)
)
;; return the point .
(if lstx
(list (* (apply '+ lstx) 0.5) (* (apply '+ lsty) 0.5))
nil
)
)
江苏昆山小城,欢迎交流
本职工作五金模具设计及加工
及cad软件开发
d
还是楼上的好!学习!
d
来看看,好像不难得
d
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 04:55 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多