找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2826|回复: 8

[教学] API应用 由线段拉伸为矩形

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-11-14 19:09:17 | 显示全部楼层 |阅读模式

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

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

×
  1. (defun c:tt (/ e p1 p2 bvec vec callback myerr olderr)
  2.   (defun myerr (msg)
  3.     (princ "\n*cancel*")
  4.     (redraw)
  5.     (xdrx_pointmonitor)
  6.     (setq *error* olderr)
  7.     (princ)
  8.   )
  9.   (defun _getperpvector        (p / dis v)
  10.     (setq dis (car (trans (mapcar '- p p1) 0 bvec))
  11.           v   (xdrx_vector_product vec dis)
  12.     )
  13.   )
  14.   (defun callback (dynpt / v)
  15.     (redraw)
  16.     (setq v (_getperpvector dynpt))
  17.     (xdrx_grdraw 1 1 p2 (mapcar '+ p2 v) (mapcar '+ p1 v) p1)
  18.   )

  19.   (if
  20.     (and
  21.       (setq e (xdrx_entsel "\nPick Line: " '((0 . "line,Lwpolyline"))))
  22.       (progn
  23.         (if (eq (xdrx_getpropertyvalue (car e) "IsA") "AcDbLine")
  24.           (mapcar 'set
  25.                   '(p1 p2)
  26.                   (xdrx_getpropertyvalue (car e) "startPoint" "endPoint")
  27.           )
  28.           (if (eq (xdrx_polyline_segtype
  29.                     (car e)
  30.                     (fix (apply 'xdrx_curve_getparamatpoint e))
  31.                   )
  32.                   "kLine"
  33.               )
  34.             (mapcar 'set
  35.                     '(p1 p2)
  36.                     (xdrx_polyline_getlinesegat
  37.                       (car e)
  38.                       (fix (apply 'xdrx_curve_getparamatpoint e))
  39.                     )
  40.             )
  41.           )
  42.         )
  43.       )
  44.     )
  45.      (progn
  46.        (setq olderr  *error*
  47.              *error* myerr
  48.        )
  49.        (setq bvec (mapcar '- p2 p1)
  50.              vec  (xdrx_vector_perpvector bvec)
  51.        )
  52.        (xdrx_pointmonitor "callback")
  53.        (if (setq p (getpoint (trans (xdrx_line_midp p1 p2) 0 1) "\n距离: "))
  54.          (progn
  55.            (setq v (_getperpvector (trans p 1 0)))
  56.            (xdrx_polyline_make
  57.              t
  58.              p1
  59.              p2
  60.              (mapcar '+ p2 v)
  61.              (mapcar '+ p1 v)
  62.            )
  63.          )
  64.        )
  65.        (xdrx_pointmonitor)
  66.        (redraw)
  67.        (setq *error* olderr)
  68.      )
  69.   )
  70.   (princ)
  71. )
000.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 3199个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2014-11-14 20:14:05 | 显示全部楼层
lucas3 发表于 2014-11-14 20:11
这个颜色是怎么做到的?

xdrx_grdraw

功    能:在屏幕上根据顶点表绘制向量(redraw 将清除)

调用格式:(xdrx_grdraw <颜色> <虚显标志> <顶点1>....<顶点n>)

返 回 值:无

说    明:<颜色>: -2 为和屏幕位置异或
                1--255 AUTOCAD 调色板颜色号
          <虚显标志>: 任意整数值,绘制向量将虚显,若给0或省略该参数,将实显。

评分

参与人数 1D豆 +5 收起 理由
lucas3 + 5 技术引导讨论和指点奖!

查看全部评分

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

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2014-11-15 13:39:38 | 显示全部楼层
这个有点意思,赞

点评

黄大师试试用API写写程序啊,保证能让你惊喜的。  详情 回复 发表于 2014-11-15 13:48
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-11-15 13:48:02 | 显示全部楼层

黄大师试试用API写写程序啊,保证能让你惊喜的。

点评

N版又开玩笑,令我汗颜。我只不过拿着大刀乱砍一通。 对于API,不同版本需要加载不同的东西,很难搞明白。直到几天前,你告诉了我lsh的用法,基本上才可能说,lisp明白了。  详情 回复 发表于 2014-11-15 14:28
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2014-11-15 14:28:19 | 显示全部楼层
newer 发表于 2014-11-15 13:48
黄大师试试用API写写程序啊,保证能让你惊喜的。

N版又开玩笑,令我汗颜。我只不过拿着大刀乱砍一通。
对于API,不同版本需要加载不同的东西,很难搞明白。直到几天前,你告诉了我lsh的用法,基本上才可能说,lisp明白了。

点评

你用LISP去完成ARX才能完成的事,没诱惑吗?咱们都是业余爱好,不是搞商业开发,要挑战自己哦,多动动脑防止老年痴呆。 加载几个东西费什么劲,现在API设计的都自动加载了,还有很多自动加载的函数在论坛。 别把  详情 回复 发表于 2014-11-15 16:58
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2014-11-15 14:41:57 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2014-11-15 14:28
N版又开玩笑,令我汗颜。我只不过拿着大刀乱砍一通。
对于API,不同版本需要加载不同的东西,很难搞明白 ...

用 API 可以让你更多的去专注算法本身,那些实体特性信手拈来,不必耗费时间去写
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-11-15 16:58:27 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2014-11-15 14:28
N版又开玩笑,令我汗颜。我只不过拿着大刀乱砍一通。
对于API,不同版本需要加载不同的东西,很难搞明白 ...

你用LISP去完成ARX才能完成的事,没诱惑吗?咱们都是业余爱好,不是搞商业开发,要挑战自己哦,多动动脑防止老年痴呆。
加载几个东西费什么劲,现在API设计的都自动加载了,还有很多自动加载的函数在论坛。

别把时间都浪费在无用的地方了,基础东西写了又写,就是写了效率也不高。多把你聪明的脑瓜用到新的东西上,高级的算法实现上,多看看国内外学术论文,搞搞那些经典的算法,挑战自己,Goooba.{:soso_e113:}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 00:10 , Processed in 0.203330 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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