PDuMont 发表于 2022-7-5 20:00:21

也许这是一个让你困惑的例子。
通常,矩形会一直穿过带槽的零件。

PDuMont 发表于 2022-7-5 20:03:14

也许是一种解释:
 
槽(带凸起)用于机械紧固件,垂直相交矩形用于工具访问紧固件的机构。

David Bethel 发表于 2022-7-5 20:08:05

做槽的不是做一个完美的长方形:
 
LW多段线层:“CN\U 3-4\U PLY-SLOT”
空间:模型空间
手柄=70bb
关闭
恒定宽度0.00000000
区域2.17691944
周长7.63345115
 
点X=3052.78821521 Y=1484.80108524 Z=0.00000000
凸度-1.00000000
中心X=3053.11821521 Y=1484.80108524 Z=0.00000000
半径0.33000000
起始角度180.0000
端角0.0000
点X=3053.44821521 Y=1484.80108524 Z=0.00000000
点X=3053.44821521 Y=1482.02108524 Z=0.00000000
凸度-1.00000000
中心X=3053.11821521 Y=1482.02108524 Z=0.00000000
按ENTER继续:
半径0.33000000
起始角度0.0000
端角180.0000
点X=3052.78821521 Y=1482.02108524 Z=0.00000000
 
在修正之前,我认为这不能准确计算垂直度
 
-大卫

Tharwat 发表于 2022-7-5 20:11:46

试试这个程序,它应该只适用于零度或180度的矩形形状。
 

(defun c:Test (/ ss)
;; Tharwat 09.07.2015        ;;
(princ "\nSelect polyline :")
(if (setq ss (ssget '((0 . "LWPOLYLINE") (90 . 4) (-4 . "&=") (70 . 1))))
   ((lambda (i / sn a b c pts p1 p2 p3 p4 1p 2p 3p 4p r)
      (while (setq sn (ssname ss (setq i (1+ i))))
          (vla-getboundingbox (vlax-ename->vla-object sn) 'a 'b)
          (setq pts (mapcar 'vlax-safearray->list (list a b)))
          (mapcar 'set '(p1 p3) pts)
          (setq p2 (list (car p1) (cadr p3))
                p4 (list (car p3) (cadr p1))
                c(inters p1 p3 p2 p4)
                )
          (if (< (distance p1 p2) (distance p2 p3))
            (setq r (list (distance p2 p3) (angle p2 p3)))
            (setq r (list (distance p1 p2) (angle p1 p2)))
            )
          (setq 1p (polar (polar c (cadr r) 0.25)
                        (+ (cadr r) (* pi 0.5))
                        (/ (car r) 2.)
                        )
                2p (polar 1p (+ (cadr r) pi) 0.5)
                3p (polar 2p (+ (angle 1p 2p) (* pi 0.5)) (car r))
                4p (polar 3p (angle 2p 1p) 0.5)
                )
          (entmakex (list '(0 . "LWPOLYLINE")
                        '(100 . "AcDbEntity")
                        '(100 . "AcDbPolyline")
                        '(90 . 4)
                        '(70 . 1)
                        '(8 . "CN_3-4_PLY-SLOT-25R")
                        (cons 10 1p)
                        (cons 10 2p)
                        (cons 10 3p)
                        (cons 10 4p)
                        )
                  )
          )
      )
       -1
       )
   )
(princ)
)(vl-load-com)

PDuMont 发表于 2022-7-5 20:17:14

谢谢David和Tharwat。
 
大卫,不确定这个形状的差异在哪里。我们有一个三维实体,我们拉出一个工具选项板进行减法。
这主要是橱柜级胶合板结构,因此公差悬而未决。03".
 
Tharwat说,lisp很酷,但是它根据选定的多段线创建了一个固定大小的矩形。
 
是否不可能选取点1和2来确定位置并设置ucs,
第3点和第4点确定矩形的长度。
 
 

 
 
也许我想得太多了。。。
页: 1 [2]
查看完整版本: 垂直矩形Lisp