找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 942|回复: 12

[求助] [求助]:x轴y轴对齐的问题(二)

[复制链接]
发表于 2006-3-7 09:40:17 | 显示全部楼层 |阅读模式

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

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

×
我又遇到了新的问题, 这是拉伸的x轴和y轴的对齐,有没有办法省去 @ 的输入 .  snoopychen 哥哥在么 ?  能不能把你的移动对齐的方法改一下

(defun c:sx() (command "stretch" "c" pause pause "" pause ".x" pause))  
(defun c:sy() (command "stretch" "c" pause pause "" pause ".y" pause))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-3-7 11:00:37 | 显示全部楼层
我水平不够,不知道怎么在command里面再去输入两个点来计算,将就改变一下顺序用用:p,也请高手指点。
[php]
(defun c:sx (/ ss1 p1 p2 p3 p4 p5)
  (setq p1 (getpoint "first point"))
  (setq p2 (getpoint "second point"))
  (setq p3 (mapcar
             '-
             p2
             p1
           )
  )
  (setq p4 (list 0 0 0)
        p5 (list (nth 0 p3) 0 0)
  )
  (command "stretch" "c" pause pause "" p4 p5)
)
(defun c:sy (/ ss1 p1 p2 p3 p4 p5)
  (setq p1 (getpoint "first point"))
  (setq p2 (getpoint "second point"))
  (setq p3 (mapcar
             '-
             p2
             p1
           )
  )
  (setq p4 (list 0 0 0)
        p5 (list 0 (nth 1 p3) 0)
  )
  (command "stretch" "c" pause pause "" p4 p5)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-7 11:31:51 | 显示全部楼层
哥哥,能不能把你的程序顺序调换下,  先窗选, 在选两个对齐的点?  现在反了, 有点不太习惯
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-7 16:32:07 | 显示全部楼层
改了一下,将将就就的。代码挺难看的。
[php]
(defun c:sx (/ ss1 p1 p2 p3 p4 p5)
  (setq temp (list 0 0 0))
  (setq pa (getpoint "\nthe first stretch point:"))
  (setq pb (getcorner pa "\nthe second stretch point:"))
  (SETQ SS (SSGET "c" pa pb))
  (setq objlen (sslength SS))
  (setq enum 0)
  (setq selset (ssadd))
  (repeat objlen
    (setq ename (ssname SS enum))
    (redraw ename 3)
    (setq enum (1+ enum))
  )
  (setq p1 (getpoint "\nfirst point:"))
  (setq p2 (getpoint "\nsecond point:"))
  (setq p3 (mapcar
             '-
             p2
             p1
           )
  )
  (setq p4 (list 0 0 0)
        p5 (list (nth 0 p3) 0 0)
  )
  (command "stretch" "c" pa pb "" p4 p5)
)




(defun c:sy (/ ss1 p1 p2 p3 p4 p5)
  (setq temp (list 0 0 0))
  (setq pa (getpoint "\nthe first stretch point:"))
  (setq pb (getcorner pa "\nthe second stretch point:"))
  (SETQ SS (SSGET "c" pa pb))
  (setq objlen (sslength SS))
  (setq enum 0)
  (setq selset (ssadd))
  (repeat objlen
    (setq ename (ssname SS enum))
    (redraw ename 3)
    (setq enum (1+ enum))
  )
  (setq p1 (getpoint "\nfirst point:"))
  (setq p2 (getpoint "\nsecond point:"))
  (setq p3 (mapcar
             '-
             p2
             p1
           )
  )
  (setq p4 (list 0 0 0)
        p5 (list 0 (nth 1 p3) 0)
  )
  (command "stretch" "c" pa pb "" p4 p5)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-7 22:30:35 | 显示全部楼层
[php]
(defun c:test()
  (command "stretch" pause)
  (setq p1 (getvar "lastpoint"))
  (command "c" p1 pause "" pause)
  (setq p1 (getvar "lastpoint"))
  (command ".x" (setq p2(getpoint)))
  (command (append (list (car p2)) (cdr p1)))
  (princ)
  )
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-7 22:57:27 | 显示全部楼层
:)跟ljpnb兄学了一招,谢谢
在2004下程序完全可行
不过在14下出现of (need YZ):一句话而无法前行,请ljpnb兄看看怎么解决
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-7 23:34:26 | 显示全部楼层
试试这个:
  1. [FONT=courier new](load "xyp_lib.vlx")  ;版本 V.20060305(2166)
  2. ;|下载和加载通用函数(可在签名栏直接下载后放到搜索路径下)
  3. 利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
  4. ★1·在acad.lsp中增加(load"xyp_lib.vlx")
  5. ■2·在每个程序内增加(load"xyp_lib.vlx")
  6. ■3·在command下,输入(load"xyp_lib.vlx")
  7. ■4·在菜单.mnl中增加(load"xyp_lib.vlx")
  8. ■5·将xyp_lib.vlx文件直接拽到cad屏幕
  9. [COLOR=red] ★通用函数下载地址:[/COLOR]
  10. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  11. |;

  12. ;;;水平定距拉伸
  13. (defun C:ST1 (/ p3 p4 p5)
  14.   (CMDLA0)
  15.   (setq NO1 (ureal 7 "" "\n距离 " NO1))
  16.   (command "osnap" "")
  17.   (while (not (setq p4 (getpoint "\n窗口起点 : "))))
  18.   (while (not (setq p5 (getcorner p4 "\n对角点 : "))))
  19.   (if (> (car p5) (car p4))
  20.     (setq p3 (list (+ (car p4) NO1) (cadr p4)))
  21.     (setq p3 (list (- (car p4) NO1) (cadr p4)))
  22.   )
  23.   (COMMAND "STRETCH" "C" p4 p5 "" P4 P3)
  24.   (CMDLA1)
  25. )
  26. ;;;垂直定距拉伸
  27. (defun C:ST2 (/ p3 p4 p5)
  28.   (CMDLA0)
  29.   (setq NO1 (ureal 7 "" "\n距离 " NO1))
  30.   (command "osnap" "")
  31.   (while (not (setq p4 (getpoint "\n窗口起点 : "))))
  32.   (while (not (setq p5 (getcorner p4 "\n对角点 : "))))
  33.   (if (> (cadr p5) (cadr p4))
  34.     (setq p3 (list (car p4) (+ (cadr p4) NO1)))
  35.     (setq p3 (list (car p4) (- (cadr p4) NO1)))
  36.   )
  37.   (COMMAND "STRETCH" "C" p4 p5 "" P4 P3)
  38.   (CMDLA1)
  39. )
  40. (PXYP "ST1  (水平定距拉伸)、ST2  (垂直定距拉伸)")
  41. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-8 02:46:04 | 显示全部楼层
反之没有动态拉伸效果,这样不就行了?
[php]
(defun c:sx(/ pt)
  (setvar "cmdecho" 1)
  (command "stretch" "c" pause pause "" pause (cons (car(getpoint))(cdr (getvar "lastpoint"))))
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-8 10:57:57 | 显示全部楼层
snoopychen哥哥看看, 把这个也改下 省去@的输入

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

使用道具 举报

发表于 2006-3-8 11:30:01 | 显示全部楼层
[php]
(defun c:cx ()
  (setq ss1 (ssget))
  (command "copy" ss1 "" pause (-x))
)

(defun c:cy ()
  (setq ss1 (ssget))
  (command "copy" ss1 "" pause (-y))
)


(defun -x ()
  (setq p0 (getvar "lastpoint"))
  (setq p1 (getpoint ".X\n于:"))
  (setq p2 (cons (car p1) (cdr p0)))
  p2
)

(defun -y ()
  (setq p0 (getvar "lastpoint"))
  (setq p1 (getpoint ".Y\n于:"))
  (setq p1 (list (car p0) (cadr p1) (caddr p0)))
  p1
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2006-3-8 15:23:04 | 显示全部楼层
su69兄啊,你可以把那个
http://www.xdcad.net/forum/showthread.php?s=&threadid=527450
的4楼程序中的move改成copy就可以了
多尝试一下自己就会的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 22:24 , Processed in 0.214715 second(s), 56 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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