找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2505|回复: 10

[分享]:两点间阵列选择集。

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-6-22 12:30:26 | 显示全部楼层 |阅读模式

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

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

×
临时写的,指定两点按间隔复制选择集。
  1. [font=courier]
  2. ($xdrx_load "xdlsp.lsp")
  3. (defun c:atpoint (/ e ss p1 p2 dis mat cen pts pins)
  4.   (xdrx_begin)
  5.   (xdrx_sysvar_push "osmode")
  6.   (xdrx_ucson)
  7.   (princ "\n选择阵列实体 .... ")
  8.   (setq ss (ssget))
  9.   (if ss
  10.     (progn
  11.       (setq p1 (getpoint "\n起点: "))
  12.       (if p1
  13.         (progn
  14.           (xdrx_setsstodb ss 0)
  15.           (while (and (not pins)
  16.                       (setq e (xdrx_getentdata 0))
  17.                  )
  18.             (if        (= (xdrx_getentdxf 0) "INSERT")
  19.               (setq pins (xdrx_getentdxf 10))
  20.             )
  21.           )
  22.           (setq p2 (getpoint p1 "\n终点: "))
  23.           (setq dis (getdist "\n间距: "))
  24.           (setq        pts ($XDLSP_Points_DividebyIntval
  25.                       p1
  26.                       p2
  27.                       (fix (/ (distance p1 p2) dis))
  28.                     )
  29.           )
  30.           (setq        mat (xdrx_matrix_identity)
  31.                 cen (xdrx_midp (car (xdrx_entity_box ss))
  32.                                (caddr (xdrx_entity_box ss))
  33.                     )
  34.           )
  35.           (if pins
  36.             (setq mat (xdrx_matrix_settranslation mat pins))
  37.           )
  38.           (mapcar '(lambda (x)
  39.                      (xdrx_entity_transformedcopy
  40.                        ss
  41.                        (xdrx_matrix_SetTranslation
  42.                          mat
  43.                          (mapcar '-
  44.                                  x
  45.                                  (if pins
  46.                                    pins
  47.                                    cen
  48.                                  )
  49.                          )
  50.                        )
  51.                      )
  52.                    )
  53.                   pts
  54.           )
  55.         )
  56.       )
  57.     )
  58.   )
  59.   (xdrx_ucsoff)
  60.   (xdrx_sysvar_pop)
  61.   (xdrx_end)
  62.   (princ)
  63. )
  64. [/font]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-6-23 08:06:44 | 显示全部楼层
按原贴所说"指定两点按间隔复制选择集", 用下列小程序兹不是更简单?
还不用调用那些带xdrx前缀的函数!
  1. (defun c:test ()
  2.   (princ "\nSelect array Objects:")
  3.   (setq ss (ssget))
  4.   (setq p1 (getpoint "\nFirst point:"))
  5.   (setq p2 (getpoint p1 "\nEnd Point:"))
  6.   (setq  d (getdist "\nDistance:"))
  7.   (setq nd (1+ (fix (/ (distance p1 p2) d))))
  8.   (command "ucs" "n" "3" p1 p2 (polar p1 (+ (angle p1 p2)(/ pi 2)) 1) "")
  9.   (command "array" ss "" "r" 1 nd d)
  10.   (command "ucs" "w" "")
  11. (princ)
  12. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2003-6-26 13:54:32 | 显示全部楼层
最初由 lsjjm 发布
[B]我的程序也不一定是在原地呀! [/B]

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

使用道具 举报

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2003-6-26 20:33:20 | 显示全部楼层
最初由 i_want_2 发布
[B]有什么区别啊,看不出来,我太笨了 [/B]

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

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2003-6-29 23:05:21 | 显示全部楼层
最初由 eachy 发布
[B]
lsjjm 的是 array ,用api 的严格说是 copy 。 [/B]


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

使用道具 举报

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

使用道具 举报

发表于 2003-7-16 15:51:04 | 显示全部楼层
*-*5
贴个以前的

  1. ;;ar线性阵列array [1*n]----lxx.2001.2
  2. ;;动态调整角度,个数
  3. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4. (defun c:ar (/ ss p1 p2 ang t key n pp)
  5. (princ "\n ar线性阵列array [1*n]----lxx.2001.2")
  6. (setvar "cmdecho" 1)(setvar "blipmode" 0)
  7. (setq ss (ssget))
  8. (setq p1 (getpoint "\n 总长起点:")
  9.       P2 (getpoint p1 "\n 总长终点:")
  10.       ang (angle p1 p2)
  11.       t "true")
  12. (command "undo" "m")
  13. (command "copy" ss "" p1 p2 "")
  14. (while t
  15. (setq key (getstring "\n D-按固定间距/T-调总长,角度/<退出>/个数:"))
  16. (cond
  17.   ((= "D" (strcase key))(ardist));;;;;;;;;;;;---------ardist
  18.   ((if (<= 2 (atoi key))(setq n (atoi key)))(arn))
  19.   ((= "T" (strcase key))
  20.    (setq p1 (getpoint "\n 总长起点:")
  21.          P2 (getpoint p1 "\n 总长终点:")
  22.          ang (angle p1 p2)         
  23.     )(arn));;;;;;;;;;;;;;;;;;;;------arn
  24.   ((= "" key)(setq t nil))
  25. )
  26. )(princ)
  27. )
  28. ;;;;;;;;arn;;;;;;调整个数
  29. (defun arn ()
  30. (command "undo" "b" "undo" "m")
  31. (setq l (/(distance p1 p2)(1- n)) i 1)
  32. (repeat (1- n)
  33. (setq pp (polar p1 ang (* i l)) i (1+ i))
  34. (command "copy" ss "" p1 pp)
  35. )
  36. )
  37. ;;;;;;;;ard;;;;;;;;;按固定间距array
  38. (defun ardist ()
  39. (setq d (getdist "\n固定间距:") tt "tt" i 1)
  40. (command "undo" "b" "undo" "m")
  41. (while (> (distance p1 p2) (* i d))
  42. (setq  pp (polar p1 ang (* i d)) i (1+ i))
  43. (command "copy" ss "" p1 pp)
  44. )
  45. )
  46. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  47. (princ "\n ar线性阵列array [1*n]----lxx.2001.2")(princ)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-20 15:34 , Processed in 0.308731 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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