那个猎人 发表于 2014-4-30 09:56:39

小弟仅有的几个币子啊,求 求大神帮忙写个偏移画矩形的lisp

我是做设计的,平时玻璃提料需要在分格的基础上四周偏移才能出玻璃尺寸。不知能不能实现自动生成玻璃轮廓。
具体过程是这样的,点击白色中间区域,先判断区域内是否为矩形,不是就提示。是矩形的话就提示输入左右上下需要偏移的距离(A,B,C,D),可以为正负,然后根据四个尺寸,每个边偏移相应的距离,生成红色或者粉红色的玻璃轮廓。
求大神帮忙。


q3_2006 发表于 2014-5-2 15:23:37

(defun c:tt ( / ar box da db dc dd e h p p1 p1a p2 p2a pa pb w)
(defun ebox (e / pa pb)
       (Vlax-Invoke-Method (Vlax-Ename->Vla-Object e ) 'GetBoundingBox 'pa 'pb )
             (setq pa (trans (vlax-safearray->list pa) 0 1)
                   pb (trans (vlax-safearray->list pb) 0 1)
             )
             (list pa pb)
)
                (setq da (getreal "\n偏移值A:")
                        db (getreal "\n偏移值B:")
                        dc (getreal "\n偏移值C:")
                        dd (getreal "\n偏移值D:")
                        p (getpoint "\n点取区域中心:")
                        e (bpoly p)
                        ar (Vlax-Get (Vlax-Ename->Vla-Object e) 'Area )
                        box (ebox e)
                        p1 (car box)
                        p2 (cadr box)
                        p1a (mapcar '- p1 (list da dd))
                        p2a (mapcar '+ p2 (list dc db))
                        pa (mapcar '+ p1 (list da dd))
                        pb (mapcar '- p2 (list dc db))
                )
                (mapcar 'set '(w h) (mapcar '- p2 p1))
                (if (equal ar (* w h) 1e-8)
                        (progn
                                (alert "是矩形!")
                                (vl-cmdf "rectang" p1a p2a)
                                (Vlax-Put-Property (Vlax-Ename->Vla-Object (entlast)) 'Color 1)
                                (vl-cmdf "rectang" pa pb)
                                (Vlax-Put-Property (Vlax-Ename->Vla-Object (entlast)) 'Color 6)
                        )
                        (alert "非矩形!")
                )
        (entdel e)
)

那个猎人 发表于 2014-5-5 08:34:10

本帖最后由 那个猎人 于 2014-5-5 08:35 编辑

q3_2006 发表于 2014-5-2 15:23 static/image/common/back.gif

大神你好,我其实在http://bbs.mjtd.com/thread-109939-1-1.html里面先发的帖子已经解决了。非常感谢你。有几个问题:
1.我想要的偏移是通过正负调节是内偏还是外篇,不是一律内外偏
2.四个偏移距离最好有记忆功能,记住上次偏移距离,这样可以免于输入
3.是否矩形不用弹窗说明,还有就是可以连续点选中心区域,这样可以输入一次偏移后,连续生成很多偏移矩形,提高效率。
非常感谢啊,不是挑毛病,就是想尽量完善而已。

q3_2006 发表于 2014-5-5 08:43:56

那个猎人 发表于 2014-5-5 08:34 static/image/common/back.gif
大神你好,我其实在http://bbs.mjtd.com/thread-109939-1-1.html里面先发的帖子已经解决了。非常感谢你。 ...

已经解决了..就将就用吧...

ggq123 发表于 2014-6-11 23:52:35

记忆功能嘛,替换成常数,另存为

1993063 发表于 2014-9-16 00:50:09

留个脚印备查
页: [1]
查看完整版本: 小弟仅有的几个币子啊,求 求大神帮忙写个偏移画矩形的lisp