找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3364|回复: 8

[求助] 求大大帮忙写一段简单的LISP

[复制链接]

已领礼包: 685个

财富等级: 财运亨通

发表于 2013-4-29 16:29:29 | 显示全部楼层 |阅读模式

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

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

×
求大大帮忙写一段简单的LISP


具体功能如下:




将一个对象向某一方向复制
复制方向由用户指定
复制距离为:角度*TAN*10
(不知道是不是这样表达,如1度:1*0.017455*10)
                        如5度:5*0.087488*10
然后将((复制后))的对象改为红色
应该需要改复制后的对象颜色麻烦点,可以改为:改变选定对象颜色为    蓝色




大概是这样:
:输入命令
:请指度角度
:请指定方向
:完成


      

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

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-4-29 17:46:02 | 显示全部楼层
贴个图片吧,要复制什么对象? 这个程序是什么专业的想实现什么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 685个

财富等级: 财运亨通

 楼主| 发表于 2013-4-29 18:03:59 | 显示全部楼层
需要复制的对象不一定。。。一般是长方形   只是想复制多一份   距离为a*tan*10   方向自定
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-4-29 18:19:43 | 显示全部楼层

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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-4-29 20:15:13 | 显示全部楼层
本帖最后由 Lispboy 于 2013-4-29 20:37 编辑

用高飞鸟斑竹的矩阵函数写一个,楼主测试下吧,还没考虑颜色什么的~
[pcode=lisp,true]
(vl-load-com)
(defun MAT:Translation ( v )
  (list
    (list 1. 0. 0. (car v))
    (list 0. 1. 0. (cadr v))
    (list 0. 0. 1. (caddr v))
    (list 0. 0. 0. 1.)
  )
)
(defun c:ttt( / an an1 d1 dis e i mat_t obj  ss)
   (if (and (setq ss (ssget))
            (setq an (getreal "\n输入复制的角度<退出>:"))
            (setq dis (getreal "\n输入距离<退出>:"))
       )
       (progn
          (command ".copy" ss "" '(0 0 0) '(0 0 0))
          (setq an1 (* pi (/ an 180.0)))
          (setq d1 (polar '(0 0 0) an1 (* dis an (/ (sin an)(cos an)))))
          (setq m_t (Mat:Translation d1))
          (setq i -1)
          (while (setq e (ssname ss (setq i (1+ i))))
             (setq obj (vlax-ename->vla-object e))
             (vla-transformby obj (vlax-tmatrix m_t))
           )
       )
   )
   (princ)
)
[/pcode]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 685个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-4-29 20:40:00 | 显示全部楼层
ysq101 发表于 2013-4-29 20:22
谢谢各位大大的帮助。。。。我的炫帮我解决了。。

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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-4-29 21:00:03 | 显示全部楼层
给矩阵变换增加了一个Ent:transformedCopy函数。

[pcode=lisp,true]
(vl-load-com)
(defun MAT:Translation ( v )
  (list
    (list 1. 0. 0. (car v))
    (list 0. 1. 0. (cadr v))
    (list 0. 0. 1. (caddr v))
    (list 0. 0. 0. 1.)
  )
)
(defun Ent:TransformedCopy (ss mat / e i obj objs)
  (cond
    ((eq (type ss) 'PICKSET)
      (setq i -1)
      (while (setq e (ssname ss (setq i (1+ i))))
        (setq objs (cons (vlax-ename->vla-object e) objs))
      )
    )
    ((eq (type ss) 'ENAME)
      (setq objs (list (vlax-ename->vla-object ss)))
    )
  )
  (while (setq obj (car objs))
     (vlax-invoke obj 'copy)
     (vla-transformby obj (vlax-tmatrix mat))
     (setq objs (cdr objs))
  )
  (princ)
)
(defun c:ttt( /  an an1 d1 dis e i m_t obj  ss)
   (if (and (setq ss (ssget))
            (setq an (getreal "\n输入复制的角度<退出>:"))
            (setq dis (getreal "\n输入距离<退出>:"))
       )
       (progn
          (setq an1 (* pi (/ an 180.0)))
          (setq d1 (polar '(0 0 0) an1 (* dis an (/ (sin an1)(cos an1)))))
          (setq m_t (Mat:Translation d1))
          (Ent:TransformedCopy ss m_t)
       )
   )
   (princ)
)

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

使用道具 举报

已领礼包: 685个

财富等级: 财运亨通

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 16:25 , Processed in 0.331133 second(s), 49 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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