明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7801|回复: 38

[源码] 用lisp写随机函数

[复制链接]
发表于 2016-6-6 22:40 | 显示全部楼层 |阅读模式
本帖最后由 荒野孤行 于 2016-6-6 22:49 编辑

在lisp写随机函数,可能很多人想知道,我也是在论坛网址:http://bbs.mjtd.com/forum.php?mod=viewthread&tid=100505 第7楼看到后而修改的。

;;;***随机线距 程序开始
(princ "\n★提示:随机线距程序调用命令;tee\n制作者:吴丁运\n")
(defun c:tee ()
  (setvar "cmdecho" 0)
  (setvar "osmode" 15359)
  (princ "\n功能:生成随机排布线距的直线")
  (vl-load-com)
  (setq len (getdist "\n请输入要绘制直线的长度:"))
  (initget 6)
  (if (not (setq n (getint "\n请输入要绘制直线的数量:<1000>")))
    (setq n 1000)
  )
(if (not
        (setq scal (getint "\n请输入线宽/线距放大比例:<10000>"))
      )
    (setq scal 10000)
  )
  (if (not
        (setq sj1 (getint "\n请输入线宽/线距随机数的范围(最小):<20>"))
      )
    (setq sj1 20)
  )
  (if (not
        (setq sj2 (getint "\n请输入线宽/线距随机数的范围(最大):<100>"))
      )
    (setq sj2 100)
  )
  (setvar "osmode" 0)
  (initget 3)
  (setq        pt     (getpoint "\n指定起始点:")
        pt_end (polar pt 0 len)
        i      0
  )
  (command "line" pt pt_end "")
  (while (< i (- n 1))
    (setq sj (/        (+ sj1 (rem (getvar "CPUTICKS") (+ (- sj2 sj1) 1))) ;从此处可了解:在lisp中生成随机数的写法
                scal
             )
    )
    (setq pt         (polar pt (angtof "90") sj)
          pt_end (polar pt 0 len)
    )
    (command "line" pt pt_end "")
    (setq i (1+ i))
    (princ)
  )
  (setvar "osmode" 15359)
  (princ (strcat "★已生成"
                 (itoa n)
                 "条线宽/线距范围在"
                 (rtos (/ sj1 scal 1.00) 2)
                 "和"
                 (rtos (/ sj2 scal 1.00) 2)
                 "之间的直线!/n"))
  (princ)
)
;;;***随机程序结束***

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

发表于 2018-3-4 18:45 | 显示全部楼层
fas提供了随机函数,但没提供给lisp用。只要将fas函数改成lisp函数就可以了。
发表于 2017-10-5 21:59 | 显示全部楼层
回帖是一种美德!感谢楼主的无私分享 谢谢
发表于 2016-10-4 20:44 | 显示全部楼层
666666666666厉害
发表于 2016-6-7 06:58 | 显示全部楼层
回覆学习!感谢 荒野孤行 分享程序!
发表于 2016-6-7 07:49 | 显示全部楼层
感谢“荒野孤行”分享程序!
发表于 2016-6-7 08:05 | 显示全部楼层
支持一下学习了
发表于 2016-6-7 08:08 | 显示全部楼层
赞一个,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
发表于 2016-6-7 08:52 | 显示全部楼层
好久不见你,
发表于 2016-6-7 08:56 | 显示全部楼层
感谢分享                          
发表于 2016-6-7 09:45 | 显示全部楼层
good good .
发表于 2016-6-7 10:14 | 显示全部楼层

支持一下学习了
发表于 2016-6-7 10:55 | 显示全部楼层
学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-19 17:12 , Processed in 0.254846 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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