找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1615|回复: 2

[每日一码] API应用 Ellipse之平行 Ellipse(更新)

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-14 23:33:26 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 st788796 于 2013-11-15 22:16 编辑

对Ellipse用 Offset 命令后 生成的将是一个模拟椭圆,本程序简单演示了对椭圆做平行椭圆,用这个方法还可以扩展到 SPline 的平行 Spline

  1. (defun c:tt (/ callback e p0 ss obj p0 ret ell majorradius minorradius)
  2.   (defun callback (dynpt / d)
  3.     (setq d (distance dynpt (xdrx_curve_getclosestpoint  e dynpt)))
  4.     (if        (not (xdrx_point_isinside dynpt e))
  5.       (progn
  6.         (vla-put-MajorRadius obj (+ d majorradius))
  7.         (vla-put-minorradius obj (+ d minorradius))
  8.       )
  9.       (if (< d minorradius)
  10.         (progn
  11.           (vla-put-majorradius obj (- majorradius d))
  12.           (vla-put-minorradius obj (- minorradius d))
  13.         )
  14.       )
  15.     )
  16.     (setq p0 dynpt)
  17.   )
  18.   (if (setq e (car (xdrx_entsel "\nPick Ellipse: " '((0 . "ellipse")))))
  19.     (progn
  20.       (xd::begin)
  21.       (setq ss                (xdrx_entity_copy e '(0. 0. 0.) '(0. 0. 0.))
  22.             MajorRadius        (xdrx_vector_length
  23.                           (xdrx_getpropertyvalue e "MajorAxis")
  24.                         )
  25.             MinorRadius        (xdrx_vector_length
  26.                           (xdrx_getpropertyvalue e "MinorAxis")
  27.                         )
  28.             obj                (vlax-ename->vla-object (ssname ss 0))
  29.       )
  30.       (setq ret (xdrx_pointmonitor "callback" ss))
  31.       (getpoint)
  32.       (xdrx_pointmonitor)
  33.       (xd::end)
  34.     )
  35.   )
  36.   (princ)
  37. )
elloff.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2013-11-15 21:14:02 | 显示全部楼层
只可一直放大,不能缩小。输入数字也没用,希望完善。

点评

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-11-15 22:17:59 | 显示全部楼层
zwwen12 发表于 2013-11-15 21:14
只可一直放大,不能缩小。输入数字也没用,希望完善。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 01:33 , Processed in 0.179802 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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