找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 660|回复: 9

[BUG报告] XD::Drag:Rectang不能拖动

[复制链接]

已领礼包: 8611个

财富等级: 富甲天下

发表于 2017-10-14 00:57:35 | 显示全部楼层 |阅读模式

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

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

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

已领礼包: 6468个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-10-16 09:56:30 | 显示全部楼层
把下面代码拷贝回去,试试

  1. (defun XD::Drag:Rectang (info pts / an dynpt en flag index
  2.                               ins ll newpoint  per pl pnt v v0
  3.                              
  4.                         )
  5.   (defun RecCallback1 (dynpt /)
  6.     (setq ins (car (xd::pnts:orthoproject (list dynpt) p1 p2)))
  7.     (setq vec (mapcar
  8.                 '-
  9.                 dynpt
  10.                 ins
  11.               )
  12.     )
  13.     (if (not lastPnts)
  14.       (setq lastPnts (cons dynpt lastPnts))
  15.       (setq lastPnts (list dynpt (car lastPnts)))
  16.     )
  17.     (xdrx_polyline_setpointat en 2 (setq ret (mapcar
  18.                                      '+
  19.                                      p2
  20.                                      vec
  21.                                    ))
  22.     )
  23.     (xdrx_polyline_setpointat en 3 (mapcar
  24.                                      '+
  25.                                      p1
  26.                                      vec
  27.                                    )
  28.     )
  29.     (setq ret (trans ret 0 1))
  30.     ret
  31.   )
  32.   (defun RecCallback2 (dynpt /)
  33.     (setq p3 dynpt
  34.           p2 (mapcar '+ p1 xdir)
  35.           p2 (car (xd::pnts:orthoproject (list p3) p1 p2))
  36.           p4 (car (xd::pnts:orthoproject (list p3) p1 (mapcar '+ p1 ydir)))
  37.     )
  38.     (if (not lastPnts)
  39.       (setq lastPnts (cons dynpt lastPnts))
  40.       (setq lastPnts (list dynpt (car lastPnts)))
  41.     )
  42.     (xdrx_polyline_setpointat en 1 p2)
  43.     (xdrx_polyline_setpointat en 2 dynpt)
  44.     (xdrx_polyline_setpointat en 3 p4)
  45.     dynpt
  46.   )       
  47.   (defun myerr(msg)
  48.      (princ (strcat "\n" msg))
  49.      (setq *error* myerr)
  50.      (xdrx_end)
  51.      (XD::Doc:Command (list ".undo" 1))
  52.   )
  53.   (setq olderr *error*)
  54.   (setq *error* myerr)
  55.   (xdrx_begin)                               
  56.   (setq p1 (car pts)
  57.         p2 (cadr pts)
  58.         flag 0
  59.   )                                       ; the center of five-star
  60.   (setq p1 (trans p1 1 0))
  61.   (if p2
  62.     (setq p2 (trans p2 1 0))
  63.   )
  64.   (setq xdir(getvar "ucsxdir")
  65.         ydir (getvar "ucsydir")
  66.   )
  67.   (setvar "lastPoint" (trans p1 0 1))
  68.   (if (not p2)
  69.     (progn
  70.       (setq ll (list p1 p1 p1 p1))
  71.     )
  72.     (progn
  73.       (setq flag 1)
  74.       (setq ll (list p1 p2 p2 p1))
  75.       (setq v0 (mapcar
  76.                  '-
  77.                  p2
  78.                  p1
  79.                )
  80.       )
  81.       (setq an (angle p1 p2)) ; |start to drag it
  82.     )
  83.   )
  84.   (initget 0)
  85.   (setq en (xdrx_polyline_make (car ll)(cadr ll)))
  86.   (xdrx_polyline_addvertexat en 2 (cadr ll))
  87.   (xdrx_polyline_addvertexat en 3 (car ll))
  88.   (xdrx_setpropertyvalue en "closed" t)
  89.   (xdrx_pointmonitor (if (= flag 1)
  90.                              "RecCallback1"
  91.                              "RecCallback2"
  92.                            )
  93.   )
  94.   (setq p3 (getpoint info))
  95.   (xdrx_pointmonitor)
  96.   (cond
  97.     ((= (type p3) 'STR)
  98.       (entdel e)
  99.     )
  100.     ((= (type ret) 'LIST)
  101.       (if (not (equal (car lastpnts) (last lastpnts) 30))
  102.         (progn
  103.           (if (cadr pts)
  104.             (progn
  105.               (setq dis (distance (car lastpnts) p1)
  106.                     vec (xdrx_vector_product (xdrx_vector_normalize vec) dis)
  107.                     p3 (mapcar '+ p2 vec)
  108.                     p4 (mapcar '+ p1 vec)
  109.               )
  110.               (xdrx_polyline_setpointat en 2 p3)
  111.               (xdrx_polyline_setpointat en 3 p4)
  112.               (setq p3 (trans p3 0 1))
  113.             )
  114.           )
  115.         )
  116.       )
  117.     )
  118.   )
  119.   (setq *error* olderr)
  120.   (xdrx_end)
  121.   p3
  122. )


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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 8611个

财富等级: 富甲天下

 楼主| 发表于 2017-10-16 16:43:42 | 显示全部楼层
N版这个对http://bbs.xdcad.net/forum.php?m ... 3A%3ADrag%3ARectang中的例子,不能实现单点模式。对于自由矩形这个插件也不能用。http://bbs.xdcad.net/forum.php?m ... 4%D3%C9%BE%D8%D0%CE
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8611个

财富等级: 富甲天下

 楼主| 发表于 2017-10-16 16:53:17 | 显示全部楼层
自由矩形可以修改一下,能用
(defun c:XDRX_FreeRec (/ e1 e2 p1 p2 p3 pts ss)
  (while (and (setq p1 (getpoint "\n矩形第一点<退出>:"))
              (or (and (setq ss        (xdrx_pickset_getAtPoint
                                  p1
                                  (XD::Doc:GetPickboxHeight)
                                  9
                                  '((0 . "LWPOLYLINE") (-4 . "&=") (70 . 1))
                                )
                       )
                       (= 1 (sslength ss))
                       (setq e1 (xdrx_getentdata 9))
                  )
                  (progn (setq e1 nil) t)
              )
              (setq p3 (getpoint "\n矩形第二点<退出>:"))
              (setq p2 (XD::Drag:Rectang "\n矩形第三点<退出>:" (list p1 p3)))
         )
    (if        (and e1
             (setq pts (xdrx_getsamplept e1))
             (not (XD::Pnt:IsOn p2 pts))
        )
      (progn (if (XD::Pnt:IsOut p2 pts)
               (xdrx_curve_union e1 (setq e2 (entlast)) 0)
               (xdrx_curve_subtract e1 (setq e2 (entlast)) 0)
             )
      )
    )
    (or        (xdrx_polyline_compress (entlast) t)
        (purge-pline (entlast))
    )
    (setq e1 nil)
    (initget 0)
  )
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8611个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 8611个

财富等级: 富甲天下

 楼主| 发表于 2018-5-7 17:30:12 | 显示全部楼层
加载0508的API后,这个函数又出问题了。这次只能向两点的延长线方向移动,画出来的是一条线段

点评

更新了 API和工具箱,重新下载下试试。  详情 回复 发表于 2018-5-7 20:45
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2018-5-7 20:45:27 | 显示全部楼层
liuyj 发表于 2018-5-7 17:30
加载0508的API后,这个函数又出问题了。这次只能向两点的延长线方向移动,画出来的是一条线段

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

使用道具 举报

已领礼包: 8611个

财富等级: 富甲天下

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 11:58 , Processed in 0.379036 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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