应用Autolisp绘制太极图案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
;应用Autolisp绘制太极图案
;程序源代码:
(defun C:yinyang(/ origin radius i-radius half-r origin-x origin-y os)
(setq os (getvar "OSMODE")) ;把捕捉当前值赋给os
(setvar "OSMODE" 0) ;然后设置0,关闭捕捉功能
(setq origin (getpoint "\nOrigin of inyn sign:")) ;输入太极图案中心点
(setq radius (getdist "\nRadius of inyn sign:" origin)) ;输入太极图案外圆直径值
(setq i-radius (getdist "\nRadius of internal circle:" origin)) ;输入太极图案中两小圆的直径值
(if (> i-radius (/ radius 4)) (setq i-radius (/ radius 4))) ;限制小圆半径值的取值范围(setq half-r (/ radius 2))
(setq origin-x (car origin)) ;取中心点的X坐标值
(setq origin-y (cadr origin)) ;取中心点的Y坐标值
(command "CIRCLE" origin radius) ;画大圆
(command "ARC" ;圆圆弧命令
"C" ;指定圆心(这些都应该是掌握AutoCAD基本制图应具备的)
(list origin-x (+ origin-y half-r)) ;圆弧起点
(list origin-x (+ origin-y radius)) ;圆弧终点
origin
)
(command "ARC"
"C"
(list origin-x (- origin-y half-r))
(list origin-x (- origin-y radius))
origin
)
(command "CIRCLE" ;此处为绘制小圆(此程序把两小圆定在竖直线上)(list origin-x (+ origin-y half-r)) ;小圆的圆心
i-radius
)
(command "CIRCLE" ;同上
(list origin-x (- origin-y half-r))
i-radius
)
(setvar "OSMODE" os) ;恢复之前的捕捉状态
(princ) ;静默退出
)
;复制此程序代码在Visual LISP控制台中运行后,直接在
;Visual LISP控制台中输入"(c:yinyang)"运行或窗口切
;换到AutoCAD绘图界面在命令区输入"yinyang"即可。
;此程序还不够完美,没有把图形的阴阳黑白表达出来,
;目前本人学到这个状态,后续加深学习把图形填充出完;美效果
;效果图如下: