找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1565|回复: 22

[编程申请]:有没有将目标对象水平等距或垂直等距排列的程序呢?

[复制链接]
发表于 2004-3-21 16:47:34 | 显示全部楼层 |阅读模式

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

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

×
有没有将目标对象水平等距或垂直等距排列的程序呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-3-21 17:26:23 | 显示全部楼层

Re: [编程申请]:有没有将目标对象水平等距或垂直等距排列的程序呢?

最初由 小菜 发布
[B]有没有将目标对象水平等距或垂直等距排列的程序呢? [/B]

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

使用道具 举报

发表于 2004-3-21 17:32:22 | 显示全部楼层
他的意思是类似于CORLDRAW中的选中物体水平对齐和垂直对齐还有水平等距离分布和垂直等距离分布,明经的老大用VBA写了一个,感觉不错,但有时候不知道怎么回事出现错误,希望咱们老大也带头用LISP和ARX写一个吧,其实就是增强CAD的互动性控制,弥补CAD本身互动性不强的缺点~~~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2004-3-22 04:48:15 | 显示全部楼层
如果按照1楼题目理解, Array足够了.请snsj说说还有什么具体要求?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-3-22 09:03:10 | 显示全部楼层
最初由 陌生人 发布
[B]是不是这个意思? [/B]


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

使用道具 举报

发表于 2004-3-22 09:47:57 | 显示全部楼层
对,实际中那几个圆可能代表外形不同的实体。这就是充分条件。
结果要求就是位置均分/间距均分
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-22 10:35:41 | 显示全部楼层
阵列的对象是同一个对象,如图所示,图中只做个水平方向上的例子,还有就是垂直方向上对齐和垂直方向上的均分,我上面贴的那个你测试下,但是缺点就是不支持组对象,只对块对象和单独的图员有效,对组不能当作一个整体,如果能把组当作一个整体处理就完美了,以前也想写一个,老是静不下心来,大家都来想想吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2004-3-22 11:18:05 | 显示全部楼层
就是七楼和十楼那个意思,实体可能不是一种,可能有块、字等
等距的基准点可以是10插入点,也可以是下面程序中计算出的的中点。
我觉得大家编程序一开始总是想得太多,这样会觉得很难下手,其实实际应用中并不需要考虑得那么复杂,我想只要对选择集中的实体按X坐标或Y坐标排个序,然后进行move就可以了吧
试用了一个明经的程序,虽然功能强大,但感觉不是很好,实用性还不如下面这个程序,我想等距均布程序可以依照这个程序改一下吧

  1.   [FONT=courier new]
  2. ;;程序名称:对象水平对齐程序
  3. ;;执行命令:ahobj
  4. ;;程序功能:将选定的对象左对齐、右对齐或对中。
  5. ;;
  6. ;;
  7. (defun c:ahobj (/ selobjs oldcmdecho)
  8.   (setq oldcmdecho (getvar "cmdecho"))
  9.   (setvar "cmdecho" 0)
  10.   (setq selobjs (ssget))
  11.   (if (or (not selobjs) (= (sslength selobjs) 1))
  12.     (princ "\n你必须选定两个或两个以上的对象")
  13.     (process selobjs)
  14.   )
  15.   (setvar "cmdecho" oldcmdecho)
  16.   (princ)
  17. )
  18. (defun process (selobjs          /            amode     apnt        apnt_x
  19.                 apnt_y          count            objname   vlaxobj        MinPoint
  20.                 MaxPoint  minext    maxext    ext_l        ext_r
  21.                 ext_m          tpnt
  22.                )
  23.   (initget "L M R")
  24.   (setq        amode (getkword
  25.                 "\n选择对齐方式[左对齐(L)/对中(M)/右对齐(R)]<左对齐>:"
  26.               )
  27.   )
  28.   (if (not amode)
  29.     (setq amode "L")
  30.   )
  31.   (initget 1)
  32.   (setq apnt (getpoint "\n选择水平对齐方向的对齐点:"))
  33.   (setq        apnt_x (car apnt)
  34.         apnt_y (cadr apnt)
  35.   )
  36.   (vl-load-com)
  37.   (setq count 0)
  38.   (repeat (sslength selobjs)
  39.     (setq objname (ssname selobjs count))
  40.     (setq vlaxobj (vlax-ename->vla-object objname))
  41.     (setq MinPoint (vlax-make-variant))
  42.     (setq MaxPoint (vlax-make-variant))
  43.     (vla-GetBoundingBox vlaxobj 'MinPoint 'MaxPoint)
  44.     (setq minext (vlax-safearray->list MinPoint))
  45.     (setq maxext (vlax-safearray->list MaxPoint))
  46.     (setq ext_l (car minext))
  47.     (setq ext_r (car maxext))
  48.     (setq ext_m (+ (/ (abs (- ext_l ext_r)) 2) ext_l))
  49.     (cond
  50.       ((= amode "L")
  51.        (setq tpnt (list ext_l apnt_y))
  52.       )
  53.       ((= amode "M")
  54.        (setq tpnt (list ext_m apnt_y))
  55.       )
  56.       ((= amode "R")
  57.        (setq tpnt (list ext_r apnt_y))
  58.       )
  59.     )
  60.     (if        tpnt
  61.       (command "_move" objname "" "non" tpnt "non" apnt)
  62.     )
  63.     (setq count (1+ count))
  64.   )
  65. )
  66. (princ "\n对象对齐程序已加载,输入ahobj命令执行。")
  67.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-22 11:24:13 | 显示全部楼层
只是对齐就简单了,主要是均分和处理组为一个单体有待考虑
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 14:28 , Processed in 0.268161 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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