明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: xyp1964

[讨论] 【e派】工具箱函数再揭秘及应用实例

    [复制链接]
发表于 2012-7-23 22:52 | 显示全部楼层
我的心,在等待,永远在等待~~
发表于 2012-7-24 07:09 | 显示全部楼层
又来观摩,感谢院长
发表于 2012-7-24 08:40 | 显示全部楼层
支持院长
发表于 2012-7-24 09:01 | 显示全部楼层
 楼主| 发表于 2012-7-24 22:35 | 显示全部楼层
lxtj(拉线台阶)

本帖子中包含更多资源

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

x

点评

我来扒院长的裤子^_^  发表于 2012-7-25 11:07
发表于 2012-7-25 10:19 | 显示全部楼层
这里好热闹 ,院长的函数集原来在这里,谢谢院长!
发表于 2012-7-25 13:31 | 显示全部楼层
院长 应该做的事情是 去物价局 提高下我们的设计费 不是 写程序了

点评

纯属逗乐,别当真!设计费自己和甲方详谈……  发表于 2012-7-25 14:20
 楼主| 发表于 2012-7-26 21:58 | 显示全部楼层
本帖最后由 xyp1964 于 2020-11-19 23:36 编辑

;; ★U序列函数★  非常重要的函数
  1. ;; ---------------------- UREAL ----------------------------
  2. ;;                  实型数输入格式化                       
  3. ;; 方式 : (setq no1 (ureal 1 "" "实数" no1))            
  4. (defun ureal (bit kwd msg def / inp)
  5.   (if def
  6.     (setq msg (strcat "\n" msg "<" (rtos def 2) ">: ")
  7.           bit (* 2 (fix (/ bit 2)))
  8.     )
  9.     (setq msg (strcat "\n" msg ": "))
  10.   )
  11.   (initget bit kwd)
  12.   (setq inp (getreal msg))
  13.   (if inp inp def)
  14. )

  15. ;; ---------------------- USTR -----------------------------
  16. ;;                  字符串输入格式化                       
  17. ;; 方式 : (setq txt1 (ustr 1 "字符串" txt1 nil))        
  18. (defun ustr (bit msg def spflag / inp nval)
  19.   (if (and def (/= def ""))
  20.     (setq msg (strcat "\n" msg "<" def ">: ")
  21.           inp (getstring msg spflag)
  22.           inp (if (= inp "")
  23.                 def
  24.                 inp
  25.               )
  26.     )
  27.     (progn
  28.       (setq msg (strcat "\n" msg ": "))
  29.       (if (= bit 1)
  30.         (while (= "" (setq inp (getstring msg spflag))))
  31.         (setq inp (getstring msg spflag))
  32.       )
  33.     )
  34.   )
  35.   (if inp inp def)
  36. )

  37. ;; ---------------------- UDIST ---------------------------
  38. ;;                  距离输入格式化                        
  39. ;; 方式 : (setq dist1 (udist 1 "" "距离" dist1 '(0 0)))
  40. (defun udist (bit kwd msg def bpt / inp)
  41.   (if def
  42.     (setq msg (strcat "\n" msg "<" (rtos def) ">: ")
  43.           bit (* 2 (fix (/ bit 2)))
  44.     )
  45.     (setq msg (strcat "\n" msg ": "))
  46.   )
  47.   (initget bit kwd)
  48.   (setq inp (if bpt (getdist msg bpt) (getdist msg)))
  49.   (if inp inp def)
  50. )

  51. ;; ---------------------- UKWORD ---------------------------
  52. ;;                    关键字输入格式化                     
  53. ;; 方式 : (setq tx1 (ukword 1 "1 2" "1-任意点/2-中心点" tx1))
  54. (defun ukword (bit kwd msg def / inp)
  55.   (if (and def (/= def ""))
  56.     (setq msg (strcat "\n" msg "<" def ">: ")
  57.           bit (* 2 (fix (/ bit 2)))
  58.     )
  59.     (setq msg (strcat "\n" msg ": "))
  60.   )
  61.   (initget bit kwd)
  62.   (setq inp (getkword msg))
  63.   (if inp inp def)
  64. )

  65. ;; ---------------------- UINT -----------------------------
  66. ;;                    整型数输入格式化                     
  67. ;; 方式 : (setq no1 (uint 1 "" "整数" no1))            
  68. (defun uint (bit kwd msg def / inp)
  69.   (if def
  70.     (setq msg (strcat "\n" msg "<" (itoa def) ">: ")
  71.           bit (* 2 (fix (/ bit 2)))
  72.     )
  73.     (setq msg (strcat "\n" msg ": "))
  74.   )
  75.   (initget bit kwd)
  76.   (setq inp (getint msg))
  77.   (if inp inp def)
  78. )

  79. ;; ----------------------- UPOINT ---------------------------
  80. ;;                       输入点格式化                        
  81. ;; 方式 : (setq pt (upoint 1 "" "点" pt '(0 0)))   
  82. (defun upoint (bit kwd msg def bpt / inp)
  83.   (if def
  84.     (setq pts (strcat
  85.                 (rtos (car def))
  86.                 ", "
  87.                 (rtos (cadr def))
  88.                 (if (and (caddr def) (= 0 (getvar "flatland")))
  89.                   (strcat ", " (rtos (caddr def)))
  90.                   ""
  91.                 )
  92.               )
  93.           msg (strcat "\n" msg "<" pts ">: ")
  94.           bit (* (fix (/ bit 2)))
  95.     )
  96.     (setq msg (strcat "\n" msg ": "))
  97.   )
  98.   (initget bit kwd)
  99.   (setq inp (if bpt (getpoint msg bpt)(getpoint msg)))
  100.   (if inp inp def)
  101. )

  102. ;; ----------------------- UANGLE ---------------------------
  103. ;;          格式化输入角度然后返回以弧度表示的角度           
  104. ;; 方式 : (setq ang (uangle 1 "" "角度" ang '(0 0)))
  105. (defun uangle (bit kwd msg def bpt / inp)
  106.   (if def
  107.     (setq msg (strcat "\n" msg "<" (angtos def) ">: ")
  108.           bit (* (fix (/ bit 2)))
  109.     )
  110.     (setq msg (strcat "\n" msg ": "))
  111.   )
  112.   (initget bit kwd)
  113.   (setq inp (if bpt (getangle msg bpt)(getangle msg)))
  114.   (if inp inp def)
  115. )

点评

院长,这些格式化是什么意思,请指导下小的  发表于 2012-8-25 09:31
发表于 2012-7-26 22:09 | 显示全部楼层
此贴坚决跟顶
发表于 2012-7-26 22:48 | 显示全部楼层
算法很不错!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-1 05:28 , Processed in 0.165013 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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