明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2240|回复: 5

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

[复制链接]
发表于 2014-4-30 09:56 | 显示全部楼层 |阅读模式
6明经币
我是做设计的,平时玻璃提料需要在分格的基础上四周偏移才能出玻璃尺寸。不知能不能实现自动生成玻璃轮廓。
具体过程是这样的,点击白色中间区域,先判断区域内是否为矩形,不是就提示。是矩形的话就提示输入左右上下需要偏移的距离(A,B,C,D),可以为正负,然后根据四个尺寸,每个边偏移相应的距离,生成红色或者粉红色的玻璃轮廓。
求大神帮忙。


附件: 您需要 登录 才可以下载或查看,没有账号?注册
发表于 2014-5-2 15:23 | 显示全部楼层
  1. (defun c:tt ( / ar box da db dc dd e h p p1 p1a p2 p2a pa pb w)
  2. (defun ebox (e / pa pb)
  3.          (Vlax-Invoke-Method (Vlax-Ename->Vla-Object e ) 'GetBoundingBox 'pa 'pb )
  4.              (setq pa (trans (vlax-safearray->list pa) 0 1)
  5.                    pb (trans (vlax-safearray->list pb) 0 1)
  6.              )
  7.              (list pa pb)
  8. )
  9.                 (setq da (getreal "\n偏移值A:")
  10.                         db (getreal "\n偏移值B:")
  11.                         dc (getreal "\n偏移值C:")
  12.                         dd (getreal "\n偏移值D:")
  13.                         p (getpoint "\n点取区域中心:")
  14.                         e (bpoly p)
  15.                         ar (Vlax-Get (Vlax-Ename->Vla-Object e) 'Area )
  16.                         box (ebox e)
  17.                         p1 (car box)
  18.                         p2 (cadr box)
  19.                         p1a (mapcar '- p1 (list da dd))
  20.                         p2a (mapcar '+ p2 (list dc db))
  21.                         pa (mapcar '+ p1 (list da dd))
  22.                         pb (mapcar '- p2 (list dc db))
  23.                 )
  24.                 (mapcar 'set '(w h) (mapcar '- p2 p1))
  25.                 (if (equal ar (* w h) 1e-8)
  26.                         (progn
  27.                                 (alert "是矩形!")
  28.                                 (vl-cmdf "rectang" p1a p2a)
  29.                                 (Vlax-Put-Property (Vlax-Ename->Vla-Object (entlast)) 'Color 1)
  30.                                 (vl-cmdf "rectang" pa pb)
  31.                                 (Vlax-Put-Property (Vlax-Ename->Vla-Object (entlast)) 'Color 6)
  32.                         )
  33.                         (alert "非矩形!")
  34.                 )
  35.         (entdel e)
  36. )
回复

使用道具 举报

 楼主| 发表于 2014-5-5 08:34 | 显示全部楼层
本帖最后由 那个猎人 于 2014-5-5 08:35 编辑
q3_2006 发表于 2014-5-2 15:23

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

使用道具 举报

发表于 2014-5-5 08:43 | 显示全部楼层
那个猎人 发表于 2014-5-5 08:34
大神你好,我其实在http://bbs.mjtd.com/thread-109939-1-1.html里面先发的帖子已经解决了。非常感谢你。 ...

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

使用道具 举报

发表于 2014-6-11 23:52 | 显示全部楼层
记忆功能嘛,替换成常数,另存为
回复

使用道具 举报

发表于 2014-9-16 00:50 来自手机 | 显示全部楼层
留个脚印备查来自: Android客户端
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-27 12:00 , Processed in 0.436896 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表