明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1991|回复: 9

关于对选择集图元排列的问题

[复制链接]
发表于 2012-3-28 23:29 | 显示全部楼层 |阅读模式
  对选择集图元进行距离排列问题,不知道怎么弄,大侠们出出手 原图:   选择外框  输入排列距离 变为:   

版主们出处手

本帖子中包含更多资源

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

x
 楼主| 发表于 2012-3-29 23:10 | 显示全部楼层
怎么没人呀!! 自己顶起来!!
 楼主| 发表于 2012-4-3 22:54 | 显示全部楼层
求 版主 出手!!
发表于 2012-4-4 08:40 | 显示全部楼层
我帮你顶了!!!!!!!!!!
发表于 2012-4-4 10:27 | 显示全部楼层
  1. (defun c:tt (/ OS CMDECHO SS D BOXLST PT SSL BOX *error*)
  2.   (defun *error* (s)
  3.     (setvar 'cmdecho cmdecho)
  4.     (setvar 'osmode os)
  5.     (princ s)
  6.     (princ)
  7.   )
  8.   (setq        os        (getvar 'osmode)
  9.         cmdecho        (getvar 'cmdecho)
  10.   )
  11.   (setvar 'cmdecho 0)
  12.   (setvar 'osmode 0)
  13.   (setq ss (ssget '((0 . "lwpolyline"))))
  14.   (if ss
  15.     (progn
  16.       (setq d (getreal "\n间距<5.0>:"))
  17.       (if (null d)
  18.         (setq d 5.0)
  19.       )
  20.       (setq ss (GXL-SEL-SS->LIST ss))
  21.       (setq boxlst (mapcar '(lambda (x) (GXL-GETBOX x)) ss))
  22.       (setq
  23.         boxlst (vl-sort boxlst '(lambda (a b) (< (caar a) (caar b))))
  24.       )
  25.       (setq pt (caar boxlst))
  26.       (setq ssl
  27.              (mapcar
  28.                '(lambda        (lw / box)
  29.                   (list
  30.                     (apply 'ssget (cons "c" (setq box (GXL-GETBOX lw))))
  31.                     box
  32.                   )
  33.                 )
  34.                ss
  35.              )
  36.       )
  37.       (foreach s ssl
  38.         (command "_move" (car s) "" (caadr s) pt)
  39.         (setq pt (polar pt 0 (+ d (- (car (cadadr s)) (caaadr s)))))
  40.       )
  41.     )
  42.   )
  43.   (setvar 'cmdecho cmdecho)
  44.   (setvar 'osmode os)
  45. )
  46. (defun gxl-Sel-SS->List        (ss / i s )
  47.   (if ss
  48.   (repeat (setq i (sslength ss))
  49.   (setq s (cons (ssname ss (setq i (1- i))) s))
  50.     )
  51.     )
  52. )
  53. (defun gxl-getbox (e1 / obj minpoint maxpoint)
  54.   (if (= 'ENAME (type e1))
  55.   (setq obj (vlax-ename->vla-object e1)) ;转换图元名
  56.     (setq obj e1)
  57.     )
  58.   (vla-GetBoundingBox obj 'minpoint 'maxpoint)
  59.   (setq minpoint (vlax-safearray->list minpoint)) ;把变体数据转化为表
  60.   (setq maxpoint (vlax-safearray->list maxpoint)) ;把变体数据转化为表
  61.   (list minpoint maxpoint)
  62. )

点评

代码很实用,对于排版有很大的帮助,永远支持g版  发表于 2012-5-4 21:25
 楼主| 发表于 2012-4-4 20:42 | 显示全部楼层
Gu_xl 发表于 2012-4-4 10:27

感谢G版出手! 不过 就是有点小问题, 我上传个附件,麻烦G版看看!

本帖子中包含更多资源

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

x

点评

根据源码自己改造成合适自己的!  发表于 2012-4-4 20:46
 楼主| 发表于 2012-4-4 20:48 | 显示全部楼层
shang_123 发表于 2012-4-4 20:42
感谢G版出手! 不过 就是有点小问题, 我上传个附件,麻烦G版看看!

额。。。G版 这个难度有点高!! 我不会!!!
 楼主| 发表于 2012-4-5 20:55 | 显示全部楼层
shang_123 发表于 2012-4-4 20:42
感谢G版出手! 不过 就是有点小问题, 我上传个附件,麻烦G版看看!

恳请G版 再次出手!! 谢谢!!!!
发表于 2012-6-6 11:47 | 显示全部楼层
找了半天,终于找到了,
发表于 2013-11-1 18:33 | 显示全部楼层
太好了,好东西呀,我自动排列时,如果能根据大小来排列就更好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-20 17:47 , Processed in 0.333004 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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