找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 383|回复: 8

[编程申请] 小白求编程随机数

[复制链接]
发表于 2017-9-6 09:38:36 | 显示全部楼层 |阅读模式

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

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

×
求随机数函数 程序, 批量修改之指定范围随机数,可设置保留几位小数。现有有例子:  sjs精简-全选只改50.Lsp    能修改 增强块编辑器 数值为50的 ,

(defun c:sjs()
(vl-load-com)
  (setq oldimzin(getvar "dimzin"))
  (setq sjxx(getreal "\n请输入随机数下限:")
        sjsx(getreal"\n请输入随机数上限:")
        precis(getint "\n请输入小数位数:")
        kbj_def"LENGTH"
        textfil "50")
  (setvar "dimzin" 0)
  (setq sstext(ss->list (ssget (list (cons 0 "insert")))))
  (setq sstext (vl-remove-if-not '(lambda(x)(and(=(dxfget 0 x) "INSERT")
                                                (and (att-text X kbj_def)
                                            (=(atof(att-text X kbj_def))(atof textfil))
                                                  ))) SSTEXT))
  (foreach x sstext
    (if (= ( dxfget 0 x) "TEXT")
      (vla-put-textstring (vlax-ename->vla-object x) (rtos (LM:randrange sjxx sjsx )2 precis))
      (cg-att-text x kbj_def (rtos (LM:randrange sjxx sjsx )2 precis))
      )
    )
  (setvar "dimzin" oldimzin)

)
   (defun SS->LIST (SS)
   (if ss
  (vl-remove-if-not '(lambda(x) (= (type X) 'ENAME)) (mapcar 'cadr (ssnamex SS)))
     nil)
   )

  (defun LM:rand ( / a c m )
    (setq m   4294967296.0
          a   1664525.0
          c   1013904223.0
          $xn (rem (+ c (* a (cond ($xn) ((getvar 'date))))) m)
    )
    (/ $xn m)
)
(defun LM:randrange ( a b )
    (+ (min a b) (* (LM:rand) (abs (- a b))))
)

  (defun cg-att-text(blkent tagtxt value / attxt);;;;;改变图块中指定标签的属性值
  (setq attxt nil)
  (setq vlob (vlax-ename->vla-object blkent)
       attlst-safe (vlax-variant-value(vla-getattributes vlob)))
  (if (>(vlax-safearray-get-u-bound attlst-safe 1)-1) (setq attlst (vlax-safearray->list attlst-safe)))
  (if attlst
    (foreach x attlst (if(equal(vla-get-tagstring X)tagtxt)
                        (setq attxt (vla-put-textstring x value))))
    )
)
  (defun dxfget(index enordat / consres);;;;获得指定的dxf
  (cond((= (type enordat) 'ENAME)
        (setq consres(CDR (ASSOC INDEX (ENTGET enordat)))))
       ((= (TYPE enordat) 'LIST)
        (setq consres(CDR(ASSOC INDEX enordat))))
       (t (princ "\n输入非图元数据")))
  consres
  )


(defun att-text(blkent tagtxt);;;;;返回图块中指定标签的属性值
  (setq attxt nil)
  (setq vlob (vlax-ename->vla-object blkent)
       attlst-safe (vlax-variant-value(vla-getattributes vlob)))
  (if (>(vlax-safearray-get-u-bound attlst-safe 1)-1) (setq attlst (vlax-safearray->list attlst-safe)))
  (if attlst
    (foreach x attlst (if(equal(vla-get-tagstring X)tagtxt)
                        (setq attxt (vla-get-textstring x))))
    )
  (if attxt
  (setq attxt (formatstrdel attxt "\\\\.+;| +")))
    attxt)

(defun formatstrdel(strent pattstr);;;;;;;移除格式描述字符串  "\\\\.+;"或者   +  |
     (setq vbsreg (vlax-get-or-create-object"vbscript.regexp"))
   (vlax-put-property vbsreg 'global -1)
   (vlax-put-property vbsreg 'Multiline -1)
   (vlax-put-property vbsreg 'IgnoreCase -1)
  (vlax-put-property vbsreg 'pattern pattstr)
  (if (equal (vlax-invoke-method vbsreg 'test  strent) :vlax-true)
    (setq txtchanged(vlax-invoke-method vbsreg 'replace strent ""))
    (setq txtchanged strent))
  (vlax-release-object vbsreg)
  txtchanged  
  )

(DEFUN C:ADS();;;;;;增加数量
(vl-load-com)
  (setq oldimzin(getvar "dimzin"))
  (setq incre(getreal "\n请输入数字增量:")
        precis(getint "\n请输入结果中保留小数位数:")
        kbj_def"LENGTH")

  ;;;(setvar "dimzin" 0)
  (setq sstext(ss->list (ssget (list (cons 0 "text,insert")))))
  (foreach x sstext
    (if (= ( dxfget 0 x) "TEXT")
      (vla-put-textstring (vlax-ename->vla-object x) (rtos(+ (atof (dxfget 1 x))incre)2 precis) )
      (cg-att-text x kbj_def (rtos (+ (atof(att-text x kbj_def))incre  )2 precis))
      )
    )
  (setvar "dimzin" oldimzin)
    )


完全看不懂这个语言, 能修改图1的文字
求相同功能 修改图2的

例函数 只能修改50这个特定块指定范围小数位随机数

例函数 只能修改50这个特定块指定范围小数位随机数
微信截图_20170906093543.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2017-9-6 09:40:59 | 显示全部楼层
求能指定范围随机数对图2的插件,可设置小数位
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-9-6 10:33:29 | 显示全部楼层
修改 文字,属性,块内文字,尺寸等等 的插件

在位编辑尺寸、文字、属性、块(任意嵌套)内文字


                               
登录/注册后可看大图

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

使用道具 举报

已领礼包: 110个

财富等级: 日进斗金

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

使用道具 举报

 楼主| 发表于 2017-9-7 16:03:44 | 显示全部楼层

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

使用道具 举报

 楼主| 发表于 2017-9-7 16:05:01 | 显示全部楼层

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 18:29 , Processed in 0.416089 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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