明经CAD社区

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 52343|回复: 130

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

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

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

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

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

命令运行:
"AlignEntity"或 "ALE":对齐对象
"AverageEntity" "AVE" :均布对象
========================================================
先选择后操作需要将以下内容写入acad200xdoc.lsp 文件中:
[code="lisp] (vl-load-com)
;;自动加载VBA程序的函数
;;本函数由明经通道mccad开发,版权所有,复制使用时请保留版权信息
(defun AutoVBALoad (app cmdliste / qapp )
   (setq qapp (strcat """ app """))
   (mapcar
       '(lambda (cmd / nom_cmd dot nodotcmd)
             (progn
   (setq dot (vl-string-search "." cmd))
   (if   dot
       (setq nodotcmd (substr cmd (+ dot 2)))
       (setq nodotcmd cmd)
   )
   (setq nom_cmd (strcat "C:" nodotcmd))
   (eval
           (read (strcat
             "(defun " nom_cmd "( / rtn)"
                 "(if (setq app(fdvbfile " qapp "))"
                     "(vl-vbarun (strcat app "!" cmd ""))"
                     "(nodvbfile " qapp "))"
             "(princ))"
           )
           )
   )
             )
         )
       cmdliste
   )
   nil
)

(defun fdvbfile  (app)
   (if (not (findfile app))
       (if (not (findfile (strcat app ".dvb")))
           nil
           (strcat app ".dvb")
       )
       app
   )
)
      
(defun nodvbfile (filename)
   (princ (strcat "\n文件 " filename
         "(.dvb) 在搜索路径文件夹中未找到。" ) )
   (princ "\n请检查支持文件的安装,然后重试。")
   (princ)
)
(AutoVbaLoad "AlignEntity" '("AlignEntity" "AverageEntity" "AVE" "ALE"))
[/code]
对齐部分的演示已经在另外的贴子上贴了,这里只贴出均布部分的演示:

本帖子中包含更多资源

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

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

本帖子中包含更多资源

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

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


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

本版积分规则

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

GMT+8, 2018-4-27 00:54 , Processed in 0.280470 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

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