找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1369|回复: 10

[原创]:解决方案:在AutoCAD 2002中使Stretch支持先选择后命令

[复制链接]
发表于 2004-9-24 23:04:35 | 显示全部楼层 |阅读模式

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

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

×

  1. [FONT=courier new]
  2. ;; 此程序用于在AutoCAD 2002中使Stretch命令支持先选择后命令
  3. ;; AutoCAD 2004, 2005无须这个程序
  4. ;; -------------------------------------------------------
  5. ;; 程序设计:邱枫,2004年9月21日,在2002下测试通过
  6. ;; =======================================================
  7. ;; 命令:S

  8. (defun c:S (/ ss e pt plist cmdecho)
  9.   (setq cmdecho (getvar "cmdecho"))
  10.   (setvar "cmdecho" 0)
  11.   (vl-catch-all-apply
  12.     '(lambda ()
  13.        (if (setq ss (ssget "I"))
  14.          (progn
  15.            (setq e (ssnamex ss 0))
  16.            (if (/= (caar e) 3)
  17.              (progn
  18.                (princ
  19.                  "\nSelect objects to stretch by crossing-window or crossing-polygon...\n"
  20.                )
  21.                (command "_.Stretch")
  22.              )
  23.              (progn                     ;else
  24.                (sssetfirst nil nil)
  25.                (setq plist (cdadr e))
  26.                (setq plist (mapcar 'cadr plist))
  27.                (setq plist (mapcar '(lambda (pt) (trans pt 0 1)) plist))
  28.                (command "_.Stretch" "_CP")
  29.                (foreach pt plist (command pt))
  30.                (command "" "")
  31.              )
  32.            )
  33.          )
  34.          (progn                         ;else
  35.            (princ
  36.              "\nSelect objects to stretch by crossing-window or crossing-polygon...\n"
  37.            )
  38.            (command "_.Stretch")
  39.          )
  40.        )
  41.      )
  42.   )
  43.   (setvar "cmdecho" cmdecho)
  44.   (princ)
  45. )

  46. (princ)
  47. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-9-25 03:35:00 | 显示全部楼层
不是很理解什么是"先选择后命令"
如果是说可先选择后调用stretch命令,可是要先输入c:s命令啊!! 这个过程和直接调用stretch有什么不同的地方么?
我还以为是说对选择过的实体都有stretch的作用,但是测试也只是对最后一个选取方式执行stretch.其实既然用ssnamex,这一点是完全可以做到的.也就是et工具里面多次同时拉伸的效果.

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

使用道具 举报

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

使用道具 举报

发表于 2004-9-25 06:33:15 | 显示全部楼层
最初由 梦断江南 发布
[B]不是很理解什么是"先选择后命令"
如果是说可先选择后调用stretch命令,可是要先输入c:s命令啊!! 这个过程和直接调用stretch有什么不同的地方么?
我还以为是说对选择过的实体都有stretch的作用,但是测试也只是对最后... [/B]



演示:


[swf w=800 h=600]http://www.xdcad.net/article/upload/file/291_20040925062851_stmd=动态多选区拉伸.swf[/swf]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-9-25 08:14:49 | 显示全部楼层
说明一下:

此程序并非增加什么新功能,而是Fix原来AutoCAD2002的一个Bug。

AutoCAD R14, 2004, 2005的Stretch命令都是直接支持先选后命令的。因一同事原来用R14,升成2002后Stretch命令不支持这种方式感到很不习惯,向我询问。我一试果然有这个问题。这个算是修正AutoCAD 2002的这个Bug。

我也习惯先选择后命令,但Stretch例外,所以从来没有注意过这事。

此文件仅仅是修正AutoCAD2002的这个问题。此问题在R14,2004,2005中均不存在。

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

使用道具 举报

发表于 2004-9-25 11:43:51 | 显示全部楼层
原来如此,我也没注意过这个,呵呵.不过已经不用2002了
ssnamex返回的坐标通常应该是WCS.
另,帮助里面说:

  1. 按视区的位置, 一个 point_description 所代表的可能是:一条无尽的
  2. 线、一条射线或是一条线段。因此, 一个点描述将包含:点描述 ID
  3. 码、起点以及可有可无的单位向量。格式如下所示:

  4.     (point_descriptor_id base_point [unit_or_offset_vector])

  5.     下面就是点描述码的意义列表:

  6. ID码
  7. 意    义


  8. 无尽的线(即 Xline)


  9. 射线(即 Ray)


  10. 线段


  11.        当视点有别于 (0, 0, 1) 坐标点时, unit_or_offset_vector将被返
  12. 回。例如:

  13.     (1 <Entity name:60000064> (0 (1.0 1.0 0.0) ) )
复制代码

但我对点的id码在什么情况下有什么作用也还不太了解. lucas或哪
位高手给说说吧? :)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-25 12:03:46 | 显示全部楼层
以前找到的一个资料,哪位翻译下
http://intervision.hjem.wanadoo.dk/ssget1.htm

[iframe h=600]http://intervision.hjem.wanadoo.dk/ssget1.htm[/iframe]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-27 17:46:33 | 显示全部楼层
找个翻译软件翻译一下就可以了。
我们这里一个叫 aidraft  的高手很厉害的,让她翻译一下好了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-27 17:50:26 | 显示全部楼层
最初由 saltxf 发布
[B]找个翻译软件翻译一下就可以了。
我们这里一个叫 aidraft  的高手很厉害的,让她翻译一下好了。 [/B]

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

使用道具 举报

发表于 2004-9-27 19:05:38 | 显示全部楼层
前面部分和cad的帮助差不多,后面举了几个例子,其中
  1. ((1 [picked by point] <Entity name: 1462e50> [the selected entity] 0
  2. (0 (292.789 243.562 0.0)) [picked point] (1.0 0.0 0.0) (0.0 1.0 0.0)
  3. (0.0 0.0 1.0) [transformation matrix] (247.729 242.464 0.0)
  4. <Entity name: 1462e68>) [main entity with insertion point])
复制代码

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

使用道具 举报

发表于 2006-1-5 14:38:32 | 显示全部楼层
非常感谢秋枫兄给大家带了福音,但是我还有一点疑问,不知秋枫
兄能否帮助解决:你的程序对对象进行选择时只支持反向选择,点选对象后再正向或反向选择夹点进行拉伸则都不支持,不知能否解决??
怎么没有人回复呢?那我就在此班门弄斧一下:我看了一下程序代码,程序在建立选择集的时候只支持第一次的选择对象,对于后面选择的对象不做处理。还有就是r14,2002,2004等中的自身stretch命令支持grip选择来对对象进行拉伸处理,而在秋枫兄的程序中则不支持,我希望大家能共同来完善,共同进步。在此献丑了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 02:48 , Processed in 0.435586 second(s), 51 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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