找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: --@-----

[求助] 直线命令的增强

[复制链接]
 楼主| 发表于 2013-9-7 00:49:29 | 显示全部楼层
Free-Lancer 发表于 2013-9-3 11:42
简单示意, 适用Cad 2011 + xdapi

虽然这个功能有了 但是原直线的功能没了  原直线还可以输入距离的 可以捕捉画线。所以整合起来应该不简单{:soso_e100:}

点评

这个延长到最近的物体上,现在这个是鼠标要是拉的超过最近的物体 就会延过于此。  详情 回复 发表于 2013-9-7 00:52
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-7 00:52:49 | 显示全部楼层
--@----- 发表于 2013-9-7 00:49
虽然这个功能有了 但是原直线的功能没了  原直线还可以输入距离的 可以捕捉画线。所以整合起来应该不简单 ...

这个延长到最近的物体上,现在这个是鼠标要是拉的超过最近的物体 就会延过于此。

点评

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

使用道具 举报

发表于 2013-9-7 04:47:26 | 显示全部楼层
--@----- 发表于 2013-9-7 00:52
这个延长到最近的物体上,现在这个是鼠标要是拉的超过最近的物体 就会延过于此。

Pause 中可以写很多内容
  1. (defun c:tt (/ GetOrthoPt aa p tf lent)
  2.   (defun GetOrthoPt (p p1 / p)
  3.     (if    (= (getvar "ORTHOMODE") 1)
  4.       (if (or
  5.         (<= (angle p p1) (* 0.25 pi))
  6.         (> (angle p p1) (* 1.5 pi))
  7.         (<= (* 0.75 pi) (angle p p1) (* 1.25 pi))
  8.       )
  9.     (setq p (list (car p1) (cadr p) 0.))
  10.     (setq p (list (car p) (cadr p1) 0.))
  11.       )
  12.       p1
  13.     )
  14.   )
  15.   (setvar "cmdecho" 1)
  16.   (setq lent (entlast))
  17.   (vl-cmdf ".line")
  18.   (while (/= (getvar "cmdactive") 0)
  19.     ;;(vl-cmdf pause)
  20.     (setq aa (grread))
  21.     (cond
  22.       ((= (car aa) 3)
  23.        (if tf
  24.      (progn
  25.        (setq p (getvar "lastpoint")
  26.          p (getorthopt p (cadr aa))
  27.        )
  28.        (vl-cmdf p)
  29.      )
  30.      (progn
  31.        (setq tf t)
  32.        (vl-cmdf (setq p (cadr aa)))
  33.      )
  34.        )
  35.       )
  36.       ((= (cadr aa) 32) ;_空格      
  37.        (vl-cmdf
  38.      (GetOrthoPt (getvar "lastpoint") (cadr (grread aa)))
  39.        ) ;_多绘制一段
  40.        (vl-cmdf "")
  41.        (if (/= (entlast) lent);_鼠标不需要超过要延伸实体
  42.      (vl-cmdf ".extend"
  43.           "all"
  44.           ""
  45.           (list (entlast) (getvar "lastpoint"))
  46.           ""
  47.      )
  48.        )
  49.       )
  50.       (t (vl-cmdf pause))
  51.     )
  52.   )
  53.   (princ)
  54. )


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

使用道具 举报

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

使用道具 举报

发表于 2013-9-20 15:58:04 | 显示全部楼层
本帖最后由 xyp1964 于 2013-9-20 16:01 编辑
  1. ;; [url]http://yunpan.cn/QXQKsW9gAPmpF[/url]

  2. (defun c:tt ()
  3.   (while (and (setq p1 (getpoint "\n基点<退出>: "))
  4.               (setq p2 (getpoint p1 "\n基点<退出>: "))
  5.          )
  6.     (progn
  7.       (setq ptn        (xyp-Get-ScreenCoord)
  8.             dd        (distance (car ptn) (cadr ptn))
  9.             s1        (xyp-line p1 (polar P1 (angle p1 p2) dd))
  10.       )
  11.       (if (setq ptn (xyp-Get-CurveIntersLeng s1 3))
  12.         (xyp-line p1 (car ptn))
  13.         (xyp-line p1 p2)
  14.       )
  15.       (xyp-erase s1)
  16.     )
  17.   )
  18.   (princ)
  19. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 08:21 , Processed in 0.404273 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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