找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1803|回复: 23

[求助] .....................................

[复制链接]
发表于 2005-2-21 22:58:25 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 贱人 于 2025-4-18 06:32 编辑

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

使用道具 举报

发表于 2005-2-22 10:00:37 | 显示全部楼层
二楼的朋友,你的这个是在坛子里找的吧,还是达不到楼主的要求啊。
楼主先试试偶的这个吧,早上匆忙写的,不是很完善。
(defun c:rc (/ os pt1 pt2 s1 s2)
  (setvar "cmdecho" 0)
  (setq os (getvar "osmode"))
  (setvar "osmode" 0)
  (princ "\n请选择要旋转复制的目标:")
  (setq s1 (ssget))
  (setq pt1 (getpoint "\n请指定基点"))
  (setq pt2 (getpoint "\n请指定目标点"))
  (command "copy" s1 "" pt1 pt2)
  (setq s2 (entlast))
  (command "rotate" s2 "" pt2 pause)
  (setvar "cmdecho" 1)
  (setvar "osmode" os)
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-2-22 12:07:46 | 显示全部楼层
楼上的程序你自己有没有试过,好象不行吧,而且问题有好多
1。(setvar "osmode" 0)这句不应该有,有时候选取基点是需要捕捉,加了这句结果什么捕捉都没了
2。(setq s2 (entlast))这句你知道运行结果是怎么样,如果选择集是由好几个实体组成的,那么这句执行结果只会选择最后一个实体,而不是一组实体集。

这是我根据楼上的程序修改过的
(defun c:rc (/ os pt1 pt2 s1 s2)
  (setvar "cmdecho" 0)
  (princ "\n请选择要旋转复制的目标:")
  (setq s1 (ssget))
  (setq pt1 (getpoint "\n请指定基点"))
  (setq pt2 (getpoint "\n请指定目标点"))
  (if (and (/= pt1 nil) (/= pt2 nil))
    (progn
      (setq l (sslength s1))
      (setq i 0)
      (setq s2 (ssadd))
      (command "undo" "g")
      (repeat l
        (setq ent (ssname s1 i))
        (command "copy" ent "" pt1 pt2)
        (setq ent1 (entlast))
        (ssadd ent1 s2)
        (setq i (1+ i))

      )
      (setq ang (getangle pt2 "\n请输入一个旋转角度 :"))
      (if (/= ang nil)
        (progn
          (setq ang (/ (* ang 180) pi))
          (setq l (sslength s2))
          (setq i 0)
          (repeat l
            (setq ent (ssname s2 i))
            (command "rotate" ent "" pt2 ang)
            (setq i (1+ i))
          )
          (command "undo" "e")
        )
        (command "undo" "e")
      )
    )
  )

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

使用道具 举报

 楼主| 发表于 2005-2-22 14:13:43 | 显示全部楼层
本帖最后由 贱人 于 2025-4-18 06:32 编辑

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

使用道具 举报

发表于 2005-2-22 14:42:48 | 显示全部楼层
楼上所说的问题,除了动态显示外,其它问题已解决,至于动态显示问题不好解决,我想程序只要运行结果对就行了,难到过程也这么看好吗?不明白。。。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-2-23 14:57:01 | 显示全部楼层
呵呵,那天早上我弄的太急了,没有细看。其实,我也调试了,只不过,没试过多选。
我再发一次。
(defun c:ry (/ os pt1 pt2 ss n m s1 s2 s3)
  (setvar "cmdecho" 0)
  (command "undo" "be")
  (princ "\n请选择要旋转复制的目标:")
  (setq s1 (ssget))
  (setq pt1 (getpoint "\n请指定基点"))
  (setq pt2 (getpoint "\n请指定目标点"))
  (setq m 0)
  (setq ss (ssadd))
  (setq n (sslength s1))
  (repeat n
    (setq s2 (ssname s1 m))
    (command "copy" s2 "" pt1 pt2)
    (setq s3 (entlast))
    (setq ss (ssadd s3 ss))
    (setq m (+ 1 m))
  )  
  (command "rotate" ss "" pt2 pause)
  (setvar "cmdecho" 1)  
  (command "undo" "e")
  (princ)
)

至于拷贝的时候,动态显示,我也不会。只好请高人再指点了。请楼主找eachy斑竹,或xyp1964长老吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-23 17:06:15 | 显示全部楼层
本帖最后由 贱人 于 2025-4-18 06:33 编辑

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

使用道具 举报

发表于 2005-2-23 20:13:30 | 显示全部楼层
关键:(getvar "lastpoint")
[php]
;;;复制+旋转
(defun c:test ()
  (command "undo" "be")
  (princ "\n请选择要旋转复制的目标:")
  (while (not (setq s1 (ssget))))
  (setq pt1 (getpoint "\n请指定基点 : "))
  (princ "\n请指定目标点 : ")
  (command "copy" s1 "" pt1 pause)
  (setq pt2 (getvar "lastpoint"))
  (setq ss2 (ssget "X"))
  (command "select" ss2 "r" ss1 "")
  (setq ss3 (ssget "P"))
  (command "rotate" ss3 "" pt2 pause)
  (command "undo" "e")
  (princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-23 20:49:24 | 显示全部楼层
本帖最后由 贱人 于 2025-4-18 06:34 编辑

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

使用道具 举报

发表于 2005-2-23 20:56:30 | 显示全部楼层
9楼的好像有问题噢,旋转是把我整个图纸都转动了,不是我的选择集,而且中途报错!

我搜集的一个旋转复制小程序,更简洁!

(defun c:rc (/ ent)

(princ "

请选择旋转复制物体.")

(setq ent (ssget))

(command "copy" ent "" "@""@")

(command "rotate" ent "")

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

使用道具 举报

发表于 2005-2-23 21:12:23 | 显示全部楼层
11楼提供的程序用是比较好用,但好象不完全符合楼主的本意。不过这个程序确实是比较简捷明了,而且也确实是复制+旋转。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-2-23 21:17:09 | 显示全部楼层
少了一句:(setq ss1 (ssget "X"))[php]
;;;复制+旋转
(defun c:test ()
  (command "undo" "be")
  (setq ss1 (ssget "X"))
  (princ "\n请选择要旋转复制的目标:")
  (while (not (setq s1 (ssget))))
  (setq pt1 (getpoint "\n请指定基点 : "))
  (princ "\n请指定目标点 : ")
  (command "copy" s1 "" pt1 pause)
  (setq pt2 (getvar "lastpoint"))
  (setq ss2 (ssget "X"))
  (command "select" ss2 "r" ss1 "")
  (setq ss3 (ssget "P"))
  (command "rotate" ss3 "" pt2 pause)
  (command "undo" "e")
  (princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-2-23 21:22:35 | 显示全部楼层
本帖最后由 贱人 于 2025-4-18 06:35 编辑

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

使用道具 举报

发表于 2005-2-23 21:25:42 | 显示全部楼层
要旋转还要拷贝,哪要什么LISP啊!
用阵列命令不就行了吗???
大家都在玩摆啊:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 22:58 , Processed in 0.206621 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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