代码改变世界

随笔档案-2011年3月26日

AutoCAD LISP循环判断自动绘制楼梯

2011-03-26 23:57 by 精诚所至 金石为开, 769 阅读, 收藏,
摘要: AutoCAD LISP REPEAT循环判断根据左下角点、楼梯高度、高度和阶数自动绘制楼梯,代码如下。(defun c:test() (setq pa (getpoint "请输入左下角点:")) (setq ww (getdist pa "\n请输入楼梯宽度:")) (setq hh (getdist pa "\n请输入楼梯高度:")) (setq n (getint "\n请输入楼梯阶数:")) (setq pb (polar pa 0 ww)) (setq pc (polar pb (/ pi 2) hh) 阅读全文

AutoCAD LISP循环判断求A到B的整数和

2011-03-26 23:42 by 精诚所至 金石为开, 463 阅读, 收藏,
摘要: AutoCAD LISP循环判断求A到B的整数和,比如求100以内的整数和,输入起始值为0,终止值为100即可,代码如下。(defun c:test() (setq nums (getint "请输入起始值:")) (setq nume (getint "\n请输入终止值:")) (setq snum 0) (setq nn (+ 1 (- nume nums))) (setq numadd nums) (repeat nn (setq snum (+ snum numadd)) (setq numadd (... 阅读全文

AutoCAD LISP 循环选择语句cond

2011-03-26 23:25 by 精诚所至 金石为开, 2831 阅读, 收藏,
摘要: AutoCAD LISP 循环选择语句cond,相比if语句更加简洁,代码如下。(defun c:test() (initget "A0 A1 A2 A3 A4") (setq size (getkword "请输入图纸大小A0,A1,A2,A3,A4<A3>:")) (if (= size nil) (setq size "A3")) (setq size (strcase size)) (cond ((= size "A0") (setq p2 '(1189 841))) ((= size 阅读全文

AutoCAD LISP绘制标准图框

2011-03-26 22:25 by 精诚所至 金石为开, 1171 阅读, 收藏,
摘要: AutoCAD LISP绘制标准图框,if选择语句,绘制A1,A2,A3,A4图框,代码如下。(defun c:test() (setq size (getstring "请输入图纸大小AO,A1,A2,A3,A4<A3>:")) (if (= size "") (setq size "A3") ) (setq size (strcase size)) (if (= size "A0") (setq p2 '(1189 841))) (if (= size "A1") (se 阅读全文

AutoCAD LISP自然数的和

2011-03-26 22:04 by 精诚所至 金石为开, 443 阅读, 收藏,
摘要: AutoCAD LISP自然数的和,根据输入的数值,求自然数的和,代码如下。(defun c:test() (setq intputin (getint "请输入数值:")) (setq snum 1) (setq sum 0) (repeat intputin (setq sum (+ snum sum)) (setq snum (+ 1 snum)) ) (princ "1+2+3+……+") (princ intputin) (princ "=") (princ su... 阅读全文

《空口言》孙燕姿

2011-03-26 21:52 by 精诚所至 金石为开, 185 阅读, 收藏,
摘要: 2011年3月26日晚9点51分402 阅读全文

AutoCAD LISP简单IF判断语句

2011-03-26 21:48 by 精诚所至 金石为开, 3465 阅读, 收藏,
摘要: AutoCAD LISP简单判断语句,代码如下。(defun c:test() (setq cenpt (getpoint "输入圆心:")) (setq rad (getdist cenpt "\n输入圆半径:")) (if (> rad 0) (progn (command "circle" cenpt rad) (command "chprop" (entlast) "" "c" 3 "") (princ "\n画图任务完成" 阅读全文

AutoCAD LISP以圆心为中点,圆的缩放操作

2011-03-26 21:26 by 精诚所至 金石为开, 738 阅读, 收藏,
摘要: AutoCAD LISP圆放大缩小操作,代码如下。(defun c:cira() (setvar "cmdecho" 0) (setq cir (entsel "Select CIRCLE to <Scale 0.5>:")) (setq cir_data (entget (car cir))) (setq old_rad_list (assoc 40 cir_data)) (setq old_rr (cdr old_rad_list)) (setq new_rr (* old_rr 0.5)) (setq new_ra... 阅读全文

AutoCAD LISP绘制圆内接五边形

2011-03-26 20:42 by 精诚所至 金石为开, 530 阅读, 收藏,
摘要: AutoCAD LISP绘制圆内接五边形,代码如下。(defun c:test() (setvar "cmdecho" 0) (setq en (entsel "Select CIRCLE:")) (setq en_data (entget (car en))) (setq cenpt (cdr (assoc 10 en_data))) (setq rr (cdr (assoc 40 en_data))) (command "polygon" 5 cenpt "i" rr) (prin1) ) (p... 阅读全文

AutoCAD LISP在直线中点绘制圆

2011-03-26 20:22 by 精诚所至 金石为开, 711 阅读, 收藏,
摘要: AutoCAD LISP在直线中点绘制圆,代码如下。(defun c:mcir() (setvar "cmdecho" 0) (setq en (entsel "Select a LINE:")) (setq en_data (entget (car en))) (setq pts (assoc 10 en_data)) (setq pt1 (cdr pts)) (setq px1 (car pt1)) (setq py1 (cadr pt1)) (setq pte (assoc 11 en_data)) ... 阅读全文

AutoCAD LISP修改已存在圆半径

2011-03-26 20:06 by 精诚所至 金石为开, 479 阅读, 收藏,
摘要: AutoCAD LISP修改已存在圆半径,代码如下(defun c:chgrad() (setvar "cmdecho" 0) (setq en (entsel "选取已知圆:")) (setq en_data (entget (car en))) (setq old_rad_list (assoc 40 en_data)) (setq old_rr (cdr rad_list)) (princ "\n旧半径=") (princ old_rr) (setq cenpt (cdr (assoc 10 en_data))) ... 阅读全文

AutoCAD LISP利用一顶点和三边长绘制三角形

2011-03-26 19:37 by 精诚所至 金石为开, 636 阅读, 收藏,
摘要: AutoCAD LISP利用一顶点和三边长绘制三角形,代码如下。(defun c:test() (setq pointa (getpoint "请输入左下角点:")) (setq A (getreal "\n请输入底边长:")) (setq B (getreal "\n请输入左下角点对边长:")) (setq C (getreal "\n请输入第三边长:")) (setq pointb (polar pointa 0 a)) (setq pointh (polar pointa 0 (/ a 2))) (setq 阅读全文

AutoCAD LISP绘制多个等半径圆相切

2011-03-26 19:03 by 精诚所至 金石为开, 545 阅读, 收藏,
摘要: AutoCAD LISP绘制多个等半径圆相切,代码如下:(defun c:test() (setq baspt (getpoint "请输入基准点:")) (setq rad (getdist "\n请输入小圆半径:")) (setq num (getint "\n请输入相切的小圆数量:")) (setq ang1 (/ (* pi 2) (* num 2))) (setq kk (/ rad (sin ang1))) (setq ang2 (- (/ pi 2) ang1)) (setq cenpt (polar ba... 阅读全文

AutoCAD LISP利用直角顶点斜边和一条直角边绘制直角三角形

2011-03-26 18:49 by 精诚所至 金石为开, 582 阅读, 收藏,
摘要: AutoCAD LISP利用直角顶点斜边和一条直角边绘制直角三角形,还可以显示变长和角度信息。(defun c:test() (setq pa (getpoint "直角定点:")) (setq ww (getreal "\n底边长:")) (setq kk (getreal "\n斜边长:")) (setq pb (polar pa 0 ww)) (setq hh (sqrt (- (* kk kk) (* ww ww)))) (setq pc (polar pa (/ pi 2) hh)) (command "lin.. 阅读全文

AutoCAD LISP矩形窗格绘制

2011-03-26 18:23 by 精诚所至 金石为开, 787 阅读, 收藏,
摘要: AutoCAD LISP矩形窗格绘制,田字形图形,代码如下:(defun c:pbox() (setq pa (getpoint "请输入左下角点:")) (setq ww (getreal "\n请输入矩形宽度实数值w:")) (setq hh (getreal "\n请输入矩形高度实数值h:")) (setq pb (polar pa 0 ww)) (setq pc (polar pb (/ pi 2) hh)) (setq pd (polar pc pi ww)) (command "pline" pa pb 阅读全文

AutoCAD LISP :Hellow World!

2011-03-26 14:35 by 精诚所至 金石为开, 470 阅读, 收藏,
摘要: CAD命令行输入:vlide,打开LISP编辑器,新建一个文件,输入代码:(alert “hellow world!”)工具栏点击加载,返回CAD窗口,弹出提示框”hellow world!”计算一个数的平方:(defun c:test() (setq a (getint "请输入一个数字:")) (setq b (* a a )) (print b) (princ) ) 加载后,CAD命令行输入:test,按照提示进行操作,输入任意一个数字,比如7,按回车,命令行出现49。 阅读全文