找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 705|回复: 5

[LISP函数]:求高手编程,很好的想法哦!

[复制链接]
发表于 2005-4-12 21:49:34 | 显示全部楼层 |阅读模式

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

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

×
我不是高手,只会用点cad,却老是遇到问题,这给了我许多很好的想法,
求高手编一个lisp ,完成的功能,1,使得选中的图形(包括多个)   在原地缩放,2,可以记忆输入的比例因子
3,特别是多个不等直径的圆在一起 在园地缩放 ,可能需要点时间,关键是类型很多,先谢谢了


发帖请注意标题要清晰明了,让别人容易明白你你要问的问题。WKAI
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-4-12 23:43:29 | 显示全部楼层
归纳缩放规律先。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-13 21:32:48 | 显示全部楼层
你说的原地缩放,不大好理解,
若要指定基准点不如直接用“SC”来得快
不指定基点那以哪个点进行操作比较具有适用性(如对不规则图形操作)?
要是通用性不强,似乎写起来就没有多大意思了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-14 16:24:57 | 显示全部楼层
不规则的图形是有点困难,应为不好找到基准点,本人这里有个批量圆同时缩放的程序,不妨试一试!
原代码如下:
(defun C:000 ()
  (prompt "\nchange the circle was selected:")
  (SETQ SC (GETREAL "\nscale:"))
  (setq sset (ssget))
  (setq        ssl   (sslength sset)
        nsset (ssadd)
  )
  (if (> ssl 25)
    (princ "\nvalidate the circle was selected  -- waiting... ")
  )
  (while (> ssl 0)
    (setq temp (ssname sset (setq ssl (1- ssl))))
    (if        (= (cdr (assoc 0 (entget temp))) "CIRCLE")
      (ssadd temp nsset)
    )
  )
  (setq        sslen (sslength nsset)
        sset  nsset
        unctr 0
  )
  (print sslen)
  (princ " circle.")
  (while (> sslen 0)
    (setq ent (entget (ssname sset (setq sslen (1- sslen)))))
    (redraw (cdr (assoc -1 ent)) 3)
    (setq nt (* SC (cdr (assoc 40 ent))))
    (redraw (cdr (assoc -1 ent)) 1)
    (entmod (subst (cons 40 nt) (assoc 40 ent) ent))
  )
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-4-15 08:13:45 | 显示全部楼层
根据一楼的要求,在比例缩放时要记忆先前输入的比例因子,本人在此还有一个程序可供参考,希望大家多提宝贵意见!
原代码如下:
(defun c:666(/ ss)
  (if (not #scal)
      (setq #scal (getreal "\nInput the scale vaule: "))
  );;end if
  (princ (strcat "\nThe current scale is: " (rtos #scal 2 3)))
  (princ "\nIf you want to change scale, you can type command SCAL")
  (setq ss (ssget))
  (command "_scale" ss "" pause #scal)
)
(defun c:888(/ temp)
  (if (not #scal) (setq temp 0.0 #scal 1) (setq temp #scal))
  (setq temp (getreal (strcat "\nInput the new value of #scal <"
                                (rtos temp 2 3) ">:")))
  (if temp (setq #scal temp))
  (princ (strcat "\nThe new value of #scal is :  "))
  (princ (rtos #scal 2 3))
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 03:47 , Processed in 0.181361 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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