找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1096|回复: 8

[求助] [求助]:请编个二维中的对齐命令

[复制链接]
发表于 2007-3-22 22:02:14 | 显示全部楼层 |阅读模式

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

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

×
在三维操作中有个命令:对齐(align)

在二维操作中也很有用,但其有两个缺点:

1、系统〈提示〉:指定第三个源点或 <继续>:

在二维操作中只用两个对齐点,需按一次回车取消第三次对齐点。

2、系统〈提示〉:是否基于对齐点缩放对象?[是(Y)/否(N)] <否>:

系统默认方式是<否>,而正常操作中大部分是选择是(Y),这就需要多按一次Y。

上面两项给操作带来多余步骤。

请高手编个程序,能有对齐(align)功能,但却简化上面两个步骤
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-3-24 09:44:24 | 显示全部楼层
试一试下面这个。

  1. ;;功能:二维ALIGN(默认缩放)
  2. ;;日期:ZML84 于 2007-03-24 9:35
  3. ;;===================================
  4. (defun c:tt (/ s1 p1 p2 p3 p4)
  5.   (princ "\n二维ALIGN(默认缩放)")
  6.   (if (setq s1 (ssget))
  7.     (if        (setq pt1 (getpoint "\n指定第一个源点:"))
  8.       (if (setq pt2 (getpoint pt1 "\n指定第一个目标点:"))
  9.         (if (setq pt3 (getpoint "\n指定第二个源点:"))
  10.           (if (setq pt4 (getpoint pt3 "\n指定第二个目标点:"))
  11.             (command "_align" s1 "" pt1 pt2 pt3 pt4 "" "Y")
  12.           )
  13.         )
  14.       )
  15.     )
  16.   )
  17.   (princ)
  18. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-24 10:26:10 | 显示全部楼层
谢谢ZML84的热心!高手!
我用了,很好用。

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

使用道具 举报

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-3-27 09:52:30 | 显示全部楼层
选择集是A/VLISP语言特有的一种变量类型。
ssget函数的功能是:通过各种方式选择对象,返回包含所选对象的选择集。
详见:http://www.mjtd.com/object/autolisp/ALR.default.214.htm
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 24个

财富等级: 恭喜发财

发表于 2007-3-28 16:32:46 | 显示全部楼层
可以简化一下
[php]
(defun c:tt(/ ssg)
  (if (setq ssg (ssget))
    (command "_.ALIGN" ssg "" pause pause pause pause "" "_N"))
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-3-29 20:49:33 | 显示全部楼层
不建议在COMMAND函数中使用 pause  ,因为你不知道用户在当前作了什么输入,也就无法检验其数据有效性。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 15:53 , Processed in 0.228364 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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