明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: hhh454

[基础] 怎么样给我的代码增加记忆功能

  [复制链接]
发表于 2011-2-26 18:01 | 显示全部楼层
  1. (defun c:tt (/ pt sc ss)
  2.   (defun ureal (bit kwd msg def / inp)
  3.     (if        def
  4.       (setq msg        (strcat "\n" msg "<" (rtos def 2) ">: ")
  5.             bit        (* 2 (fix (/ bit 2)))
  6.       )
  7.       (setq msg (strcat "\n" msg ": "))
  8.     )
  9.     (initget bit kwd)
  10.     (setq inp (getreal msg))
  11.     (if        inp
  12.       inp
  13.       def
  14.     )
  15.   )
  16.   (setvar "CMDECHO" 0)
  17.   (setq NO1 (UREAL 7 "" "缩放值" NO1))
  18.   (princ "\n选择缩放实体<退出>: ")
  19.   (while (and (setq ss (ssget))
  20.               (setq pt (getpoint "\n指定一点<退出>: "))
  21.          )
  22.     (command ".scale" "non" ss "" pt (/ 1.0 NO1))
  23.     (princ "\n选择缩放实体<退出>: ")
  24.   )
  25.   (setvar "CMDECHO" 1)
  26.   (princ)
  27. )
 楼主| 发表于 2011-2-28 10:26 | 显示全部楼层
回复 xyp1964 的帖子

谢谢院长,感谢。
 楼主| 发表于 2011-2-28 10:28 | 显示全部楼层
回复 guankuiwu 的帖子

这个代码的功能和sc一样,就是省去了每次都要输入比例值。
发表于 2011-4-7 23:17 | 显示全部楼层
都是好程序啊!
不知能否做到连续缩放呢?
发表于 2011-4-8 21:38 | 显示全部楼层
呵呵,学习了,谢谢
发表于 2012-4-11 23:41 | 显示全部楼层
本帖最后由 先进者 于 2012-4-11 23:43 编辑
  1. ;角度阵列程序;(2005.8.5胡晓航(Angle array routine),
  2. (defun C:AAR ( / ss ang bp cnt dist d)
  3. (PRINC "\n 角度阵列 ")
  4.   (cond
  5.     (  (setq ss (ssget))
  6.        (initget 1)
  7.        (setq bp (getpoint "\n基点: "))
  8.        (initget 1)
  9.        (setq ang
  10.            (getangle bp "\n阵列方向: "))
  11.          (initget 7)
  12.          (setq dist
  13.            (getdist "\n对象间距: "))
  14.          (initget 7)
  15.          (setq cnt (getint "\n对象个数: "))
  16.          (setq d 0.0)
  17.          (setvar "cmdecho" 0)
  18.          (command "_.undo" "_g"
  19.                   "_.copy" ss "" "_m" bp)
  20.          (repeat (1- cnt)
  21.            (command
  22.                (polar bp ang (setq d (+ d dist)))))
  23.                (command "" "_.undo" "_e")
  24.         )
  25.       )
  26.       (princ)
  27. )


能不能帮我在对象间距和对象个数那里加个记忆功能
发表于 2012-4-12 08:02 | 显示全部楼层
  1. ;; 角度阵列程序  需要e派工具箱的支持
  2. (defun C:tt (/ ss bp d)
  3.   (setq        ang  (Uangle 1 "" "阵列方向<输入或鼠标直接量取>" ang nil)
  4.         dist (Udist 1 "" "间距<输入或鼠标直接量取>" dist nil)
  5.         cnt  (Uint 7 "" "次数" cnt)
  6.   )
  7.   (PRINC "\n选择实体: ")
  8.   (if (setq ss (ssget))
  9.     (progn
  10.       (setq bp '(0 0)
  11.             d  0.0
  12.       )
  13.       (command "_.copy" ss "" "_m" bp)
  14.       (repeat (1- cnt)
  15.         (command
  16.           (polar bp ang (setq d (+ d dist)))
  17.         )
  18.       )
  19.       (command "")
  20.     )
  21.   )
  22.   (princ)
  23. )
发表于 2012-4-12 18:49 | 显示全部楼层
这个应该比较简单啊  不过每次要按次确定 也是麻烦
发表于 2012-4-12 21:13 | 显示全部楼层

;; 参数相对多时,还是用对话框方式比较方便

  1. ;; 角度阵列  需要e派工具箱的支持
  2. (defun c:tt (/ ilst)
  3.   (cmdla0)
  4.   (defun main-pro (/ ss bp d)
  5.     (PRINC "\n选择实体: ")
  6.     (if (setq ss (ssget))
  7.       (progn
  8. (setq bp '(0 0)
  9.        d  0.0
  10. )
  11. (command "_.copy" ss "" "_m" bp)
  12. (repeat (1- cnt)
  13.    (command
  14.      (polar bp (xyp-d2r ang) (setq d (+ d dist)))
  15.    )
  16. )
  17. (command "")
  18.       )
  19.     )
  20.   )
  21.   (xyp-initSet '(ang dist cnt) '(30. 1000. 6))
  22.   (setq ilst '(("" "参数" ":boxed_column{")
  23.         ("ang" "阵列方向" "real" "12")
  24.         ("dist" "间距" "real" "12")
  25.         ("cnt" "次数" "int" "12")
  26.         "spacer;"
  27.         "}"
  28.        )
  29.   )
  30.   (if (= (xyp-Dcl-Init Ilst "【角度阵列】" t) 1)
  31.     (main-pro)
  32.   )
  33.   (cmdla1)
  34. )

本帖子中包含更多资源

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

x
发表于 2012-4-13 01:03 | 显示全部楼层
我一般带记忆功能这样实现的,代码比较容易懂,其中 scalebak 为全局变量
(if (null scalebak)  (setq scalebak 100.0))
(if (setq s (getreal (strcat "\n比例值<" (rtos scalebak 2 2) ">:")))
  (setq scalebak s)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-1 21:52 , Processed in 0.434692 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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