明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 92939|回复: 155

[原创]对象均布与对齐工具

    [复制链接]
发表于 2004-1-10 20:47:00 | 显示全部楼层 |阅读模式
注意,该程序不做公开,如有需要,可来信索取部分原码。

下载文件后,将文件放到启动组中,直接使用以下命令即可调用:
AO:对齐对象
EO:均布对象

该程序为测试版本,希望大家测试后提点意见,以便完善。

========================================================
2004-11-21:
该文件已经更新为正式版本,更新如下:
1.支持简体、繁体及英文三种语言。
2.实现对齐的方式记忆功能。

命令运行:
"AlignEntity"或 "ALE":对齐对象
"AverageEntity" "AVE" :均布对象
========================================================
先选择后操作需要将以下内容写入acad200xdoc.lsp 文件中:
  1. (vl-load-com)
  2. ;;自动加载VBA程序的函数
  3. ;;本函数由明经通道mccad开发,版权所有,复制使用时请保留版权信息
  4. (defun AutoVBALoad (app cmdliste / qapp )
  5.    (setq qapp (strcat """ app """))
  6.    (mapcar
  7.        '(lambda (cmd / nom_cmd dot nodotcmd)
  8.              (progn
  9.    (setq dot (vl-string-search "." cmd))
  10.    (if   dot
  11.        (setq nodotcmd (substr cmd (+ dot 2)))
  12.        (setq nodotcmd cmd)
  13.    )
  14.    (setq nom_cmd (strcat "C:" nodotcmd))
  15.    (eval
  16.            (read (strcat
  17.              "(defun " nom_cmd "( / rtn)"
  18.                  "(if (setq app(fdvbfile " qapp "))"
  19.                      "(vl-vbarun (strcat app "!" cmd ""))"
  20.                      "(nodvbfile " qapp "))"
  21.              "(princ))"
  22.            )
  23.            )
  24.    )
  25.              )
  26.          )
  27.        cmdliste
  28.    )
  29.    nil
  30. )

  31. (defun fdvbfile  (app)
  32.    (if (not (findfile app))
  33.        (if (not (findfile (strcat app ".dvb")))
  34.            nil
  35.            (strcat app ".dvb")
  36.        )
  37.        app
  38.    )
  39. )
  40.       
  41. (defun nodvbfile (filename)
  42.    (princ (strcat "\n文件 " filename
  43.          "(.dvb) 在搜索路径文件夹中未找到。" ) )
  44.    (princ "\n请检查支持文件的安装,然后重试。")
  45.    (princ)
  46. )
  47. (AutoVbaLoad "AlignEntity" '("AlignEntity" "AverageEntity" "AVE" "ALE"))

对齐部分的演示已经在另外的贴子上贴了,这里只贴出均布部分的演示:

本帖子中包含更多资源

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

x
 楼主| 发表于 2004-1-12 19:29:00 | 显示全部楼层
再试试看,因为我上面的那些图片都是使用预览后截图的。不应该会没有。
发表于 2004-1-12 22:06:00 | 显示全部楼层
管理员的东东一定不错!
发表于 2019-3-10 15:04:56 | 显示全部楼层
这个命令很好用,如果支持对齐散的对象(不是块或群组的对象和串联的),就完美了!

 楼主| 发表于 2004-1-11 09:57:00 | 显示全部楼层
由于AutoCAD的BUG,使用触发事件来执行的VBA过程,当VBA过程带有对话框,则隐藏对话框时不能正常使用GETXXX方法,所以程序已经所以调整。
另外,该均布程序当设置行距或列距为0时可以当成对齐工具使用。也就是可以实现上下均布,同时左右对齐的功能。

本帖子中包含更多资源

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

x
发表于 2004-1-11 09:58:00 | 显示全部楼层
我加载之后运行出现“无法加载这个对象,因为它不适用于这台计算机”
不知道是不是因为我的是cad2000?
 楼主| 发表于 2004-1-11 10:00:00 | 显示全部楼层
因为我这里没有2000版调试。无法知道怎么回事。
 楼主| 发表于 2004-1-11 16:01:00 | 显示全部楼层
程序已做修改,增加了出错处理。
对象对齐功能也按照均布的功能重新写代码。
解决问题:
1.对话框位置在隐藏后可显示在上次移动到的位置。
2.文本框空值时不能使用预览和确定键。
3.重置键在没有可重置项目时不能选。
4.点“指定行列间距”前,行距、列距不可选。
5.在均布到区域项选中时可以再使用选区域按钮(原来不行)。
6.过滤了射线和构造线的选定,避免出错。
7.选择区域的选择对象增加了出错检查。
发表于 2004-1-11 20:30:00 | 显示全部楼层
bluemoon发表于2004-1-11 9:58:00我加载之后运行出现“无法加载这个对象,因为它不适用于这台计算机”
不知道是不是因为我的是cad2000?


不是cad2000的问题.我的可以用,不过有点问题,在屏幕上选点时鼠标失效,无显示也不响应按键,只能按esc退出.
 楼主| 发表于 2004-1-12 16:17:00 | 显示全部楼层
请重新下载,已经做调整。
发表于 2004-1-12 18:15:00 | 显示全部楼层
好程序,但好象预览没有
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-19 08:39 , Processed in 0.312263 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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