找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4304|回复: 15

[矩形] 矩形拉伸

[复制链接]

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-11-30 21:39:42 | 显示全部楼层 |阅读模式
  • 插件名称 : 矩形拉伸
  • 作  者 : newer
  • 运行环境 :XDRX API 晓东工具箱 
  • 发布时间 :2016-11-30
  • 命令名称 :XDTB_StretchRectang
  • 插件介绍 :矩形拉伸
  • 备  注 : (点击图片可以放大)
(点击图片可以放大)

晓东温馨提示 1、运行环境为 晓东工具箱XDRX API 的插件,请下载最新版本的 晓东工具箱XDRX API开发环境 一键安装
2、在ACAD中如何加载插件,请看 论坛插件使用方法
3、如果您有要求需要定制插件,请到 编程申请 论坛发帖求助

插件详细内容

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
论坛以前ST写过一个,http://bbs.xdcad.net/thread-672368-1-1.html


这个修改自那个,修改的地方是拉角点的时候,拽动的是顶点,这样更符合需要。

[sell]
(defun c:XDTB_StretchRectang (/ an an1 d d1 dynpt e i inxs lst mat msg
                                my_err near norm1 norm2 p p1 p2 pam ptl pts
                                scl str v v1 v2 vx vy x
                             )
  (defun my_err (msg)
    (princ "\n")
    (princ msg)
    (xdrx_end)
    (xd::doc:command (list ".undo" 1))
    (setq *error* nil)
  )
  (defun callback (dynpt / d d1 scl)
    (setq v (mapcar
              '-
              dynpt
              p
            )
    )
    (setq norm1 (xdrx_vector_perpvector vx)
          norm2 (xdrx_vector_perpvector vy)
          v1 (xdrx_vector_orthoproject v norm1)
          v2 (xdrx_vector_orthoproject v norm2)
    )
    (xdrx_polyline_setpointat e near dynpt)
    (xdrx_polyline_setpointat e (car inxs) (mapcar
                                             '+
                                             p1
                                             v2
                                           )
    )
    (xdrx_polyline_setpointat e (cadr inxs) (mapcar
                                              '+
                                              p2
                                              v1
                                            )
    )
  )
  (defun callback1 (dynpt / d ptl)
    (setq d (apply
              'xdrx_point_dist2line
              (cons dynpt pts)
            )
          ptl (mapcar
                '(lambda (x)
                   (polar x an1 d)
                 )
                pts
              )
    )
    (mapcar
      '(lambda (i x)
         (xdrx_polyline_setpointat e i x)
       )
      lst
      ptl
    )
  )
  (if (and
        (setq e (xdrx_entsel "\n点选多义线<退出>: " '((0 . "lwpolyline"))))
        (xdrx_polyline_compress (car e))
        (XD::Polyline:IsRectang (car e))
      )
    (progn
      (xd::begin)
      (setq *error* my_err)
      (xdrx_sysvar_push '("osmode" 33))
      (setq p (cadr e)
            e (car e)
            pam (xdrx_curve_getparamatpoint e (trans p 1 0))
            pts (xdrx_polyline_getlinesegat e (fix pam))
      )
      (if (<= 0.34 (cadr (xdrx_math_modf pam)) 0.67)
        (progn
          (xdrx_sysvar_push '("orthomode" 1))
          (setq lst (XD::Polyline:SegIndex e (fix pam))
                an (apply
                     'angle
                     pts
                   )
                an1 (- an _pi2)
                str "Callback1"
                p (trans p 1 0)
          )
        )
        (progn
          (xdrx_sysvar_push '("orthomode" 0))
          (setq mat (xdrx_matrix_identity 3)
                near (XD::Polyline:NearIndex e (trans p 1 0))
                p (xdrx_polyline_getpointat e near)
                inxs (xd::polyline:-index+ e near)
                p1 (xdrx_polyline_getpointat e (car inxs))
                p2 (xdrx_polyline_getpointat e (cadr inxs))
                vx (xdrx_vector_normalize (mapcar
                                            '-
                                            p1
                                            p
                                          )
                   )
                vy (xdrx_vector_normalize (mapcar
                                            '-
                                            p2
                                            p
                                          )
                   )
          )
          (setq str "callback")
        )
      )
      (xdrx_pointmonitor str e)
      (getpoint (trans p 0 1))
      (xdrx_pointmonitor)
      (xdrx_sysvar_pop)
      (xd::end)
    )
  )
  (princ)
)

[/sell]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 8727个

财富等级: 富甲天下

发表于 2016-12-1 06:10:23 | 显示全部楼层
确实是难得好帖啊,顶先
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 653个

财富等级: 财运亨通

发表于 2016-12-1 08:05:05 | 显示全部楼层
啥也不说了,感谢楼主分享哇!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 66个

财富等级: 招财进宝

发表于 2016-12-1 08:28:40 | 显示全部楼层
啥也不说了,感谢楼主分享哇!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

发表于 2016-12-1 10:18:12 | 显示全部楼层
这个与CAD自带的拉伸方便多了哈。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 87个

财富等级: 招财进宝

发表于 2016-12-1 16:05:06 | 显示全部楼层
啥也不说了,感谢楼主分享哇!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 828个

财富等级: 财运亨通

发表于 2016-12-16 08:16:44 | 显示全部楼层
感谢楼主分享,好好学习一下
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 65个

财富等级: 招财进宝

发表于 2017-5-12 21:09:44 | 显示全部楼层
这个可以有,谢谢楼主分享!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 47个

财富等级: 招财进宝

发表于 2019-11-29 13:35:54 | 显示全部楼层
newer版主实在厉害,高高手啊,在下佩服。建议实现下一个功能:
数据格式如下: *.dat文件,(或者EXCElL表格文件)
点号,X,Y,ΔX(毫米),ΔY(毫米)
根据XY值将点号展会到图纸上,将ΔX,ΔY值标注在对应点上且在相应点上画上两个垂直的箭头
程序以对话框的形式,如箭头大小、长度,注记文字的大小,图层等。这功能市场上太需要了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2020-3-20 16:17:07 | 显示全部楼层
感谢楼主分享
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2020-3-21 12:51:53 | 显示全部楼层
感谢楼主分享
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2020-5-4 20:59:32 | 显示全部楼层
学习下。应该有用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 422个

财富等级: 日进斗金

发表于 2020-5-5 14:22:25 | 显示全部楼层
确实是好东西,功能比自带的好多了。支持楼主。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

发表于 2020-6-23 10:57:54 | 显示全部楼层
好贴,,点赞
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2020-6-24 09:14:41 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-26 09:07 , Processed in 0.206654 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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