autocadlisp编程代码(AutoCAD LISP程序问题)

案例 2020-02-05 18:20:55

autocad中的lisp语言
=(/ (- 88 (* 52 63)) (+ 18 (/ 47 3)))
这是第一小题的答案,LISP表达式是从内计算到外的,运算符号放在两个或多个操作数的前面。很简单的。(- 5 3 2)代表5-3-2
Autocad lisp中帮忙写一段,可以随机产生整数的代码

AUTOLISP立面是没有真正意义上的随机数算法的,所以如果要在lisp使用随机数只有利用其他数值获得伪随机数,常用的就是获取时间,即

(getvar "cdate")

以此来获取当前时间(整数部分为年月日,小数部分为时分秒,精确到0.01秒),cad中直接输入cdate也可以获取数值。一般情况会取秒及秒以后的一共三位数作为随机数(只能取这三位,因为十秒位是六进一,即每60秒直接进到分位,该位不会出现6 7 8 9这四个数,所以一般不考虑。)

如果你需要的随机整数刚好小于1000,则可以用这种方法。详细:

(defun random(@site / @date @random);@site作为随机数位数,定义为1,2,3分别对应0-9,0-99,0-999
    (if(or(< 1 @site)(> 3 @site))(exit));如果@site大于3或小于3则函数停止
    (setq @date(* 100000000 (getvar "cdate")));获取当前时间并去掉小数点赋值到@date
    (setq @remValue 1);赋值除数为1
    (repeat @site
        (setq @remValue(* 10 @remValue))
    );循环次数等于保留位数,如果三次则@remValue等于1000,两次100,一次10
    (setq @random (rem @date @remValue));将@date保留最后若干位,赋值到@random
)

之后,如果要获取随机数只需要(random 1)或者(random2)、(random 3)即可获取一位、两位、三位伪随机数。

H13-1123现代北欧立体<a href=http://www.moxingzu.com/tag/5311/ target=_blank class=infotextkey>墙饰</a>挂件原木板H13-1123现代北欧立体墙饰挂件原木板


autoCAD通过LISP编程完成衣柜动态块的插入
首先可能要谈的一点同时也是感到非常遗憾的一件事是惊闻这两天在家族群里讨论了最近一篇关于“家族发展混乱现象记及其引发的些许思考”文章的某些论断,看了一下大概有几处需要指出,其一是必须值得肯定的是其中提及的家门到访韩国顺便串门拜访本家家门,首先这是人之常情,亲戚好友相互串门是极其正常的,无需大惊小怪,此种增强宗亲之间的寻亲访亲交流行为值得肯定,但同时个人行为虽是人之常情,随意打上家族名义的宣传这也是不太妥当的更不是可取的,其二是作者用了一些强烈的甚至是偏激的语言从非当事人的角度来加以描述表达以及引发了一些思考包括后来引发了一些讨论,这种列举个案的方式同样是不妥当不可取的,但同时我想宗亲们也应该去想一下的是作者只是列举了一个案例,其本意并不是为了针对某一个人而是针对某种现象,换言之对事不对人,陌生人之间本身无冤无仇,更何况是天下闵氏一家亲,都是最亲的兄弟姐妹,本都是相亲相爱的闵氏一家人,我们人口本来就不多,搞好团结都还来不及,有什么值得我们去争执,又有什么值得去纠结的呢,古话说得好:有则改之,无则加勉!也许我们都太过无知了,我们一方面接受不了别人说我们任何的不好,一方面我们又太自以为是以为自己做得完全正确,到头来抵不过一句古话,然而我们若能读懂简单的这句古话,那么或许今天我们的争执也许就有了意义,因为我们共同将家族发展的未来推向新的高度和领域,从这个角度而言,我觉得我们都应该感谢当事人双方,当然,更值得双方反思的是我们自己,我们每一个人都应该积极去反思我们的行为,我们真的很冤吗,我们真的做对了吗,我想还是会回到这句几千年的俗语:有则改之,无则加勉!在此,谨将这句我们早已听了无数遍的话但直到今天我们整个家族或许都还没读懂的一句话作为该事件的些许注解分享给所有宗亲,愿我们都能明白,我们的征途是星辰大海,我们没有多少时间可以浪费在一些口舌之上,更没有多少时间可以浪费在本来就没有意义的事情上,因为家族的未来正在取决于我们所拥有的每一分钟每一秒钟,家族发展的时代车轮必将驶向更远的远方……