869471067 发表于 2019-8-6 15:20:35

请教一个思路,怎么识别一个封闭矩形的短边

如图,想识别这块板的短边,但因为有柱子的存才,不是正规的矩形,现在想识别那个2600的宽,想请教下有什么思路。

hhh454 发表于 2019-8-6 15:24:56

本帖最后由 hhh454 于 2019-8-6 15:26 编辑

1,首先取得图形的最小左下角点和最大右上角点的xy坐标,2,通过左下角点得出右下角点
3,测量右下角点到右上角点得出你要的数值

hhh454 发表于 2019-8-6 15:31:10

(vl-load-com)
;求包围盒最小点和最大点
(defun min_max ()
(setq ssn (ssname ss i))                ;取得选择集内所有图元名称
(setq e_ssn (entget ssn))                ;取得特定图元的关联表
(Vlax-Invoke-Method
    (Vlax-Ename->Vla-Object ssn)
    'GetBoundingBox
    'minPt
    'maxPt
)
(setq zxd (vlax-safearray->list minPt))
(princ "\n左下点")
(setq ysd (vlax-safearray->list maxPt))
(princ "\n右上点")
(setq yxd (list (car ysd) (cadr zxd)))
(princ "\n右下点")
(setq        dx (distance zxd yxd)                ;宽度
                dy (distance yxd ysd)                ;高度
)
)

869471067 发表于 2019-8-6 15:33:47

hhh454 发表于 2019-8-6 15:24
1,首先取得图形的最小左下角点和最大右上角点的xy坐标,2,通过左下角点得出右下角点
3,测量右下角点到 ...

再请教一下,如果这个图是做成一个块的,应该怎样识别到这个封闭空间的短跨长度

start4444 发表于 2019-8-6 17:03:16

考虑用内框线命令   "BOUNDARY"再算长宽?

869471067 发表于 2019-8-14 16:29:49

我想到了一个思路,就是用“bpoly”生成封闭空间的边界多段线,然后再求出其中的x和y的最大和最小的坐标,就可以计算出短边的长度。但是又发现了新的问题,如果是斜梁围成的版块,就无法用这个方法计算出短边。
页: [1]
查看完整版本: 请教一个思路,怎么识别一个封闭矩形的短边