AutoLISP绘制三维螺旋楼梯..doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AutoLISP绘制三维螺旋楼梯.

AutoLISP 绘制三维螺旋楼梯   一、〖说明〗   本例程能够绘制建筑中的三维螺旋楼梯。根据指定的参数:圆心点、梯级高、最窄梯级宽、楼梯宽度、扶手高、底板厚度和层高,程序将自动计算并绘制出以3dface和tabsurf组成的三维螺旋楼梯模型。程序能在R12至R14版的AutoCAD中运行。 二、〖安装〗   将程序代码一节的文本裁剪下来,保存成名为3DSP.LSP的文本文件;将这个文件拷贝到AutoCAD的系统目录中。 三、〖使用〗   在AutoCAD命令行键入:(load 3dsp)然后执行:3dsp,按程序中的提示操作即可。(程序中的提示已改为中文,若需要英文提示可自行修改提示字符串或跟我联系) 四、〖程序代码〗 ;;;begain 3dsp.lsp (defun dtr (r) (* r (/ pi 180.0))) (defun rtd (r) (* r (/ 180.0 pi))) (defun 3dsp_err (s) (if (not (member s (list console break Function cancelled quit/exit abort))) (princ (strcat \n3DSP Error: s)) ) (if cmd (setvar cmdecho cmd)) (if bli (setvar blipmode bli)) (if cla (setvar clayer cla)) (if os1 (setvar osmode os1)) (princ) ) (defun spinfo (/ ht) ; staircase parameter (setq cp (getpoint \n螺旋梯圆心点: ) lp (getpoint cp \n首级内圆起始点: ) riser (getdist \n梯级高: ) step (getdist \n内圆最窄梯级宽: ) wide (getdist \n楼梯宽度: ) hrl (getdist \n扶手高: ) thi (getdist \n底板厚度: ) ht (getdist \n层高: ) case (fix (/ ht riser)) riser (/ ht case) ls (sqrt (+ (expt riser 2) (expt step 2))) a (/ riser ls) ; sin A b (/ step ls) ; cos A c lp ) ); end SPINFO (defun spcalc (/ os1) (setq os1 (getvar osmode)) (initget L R B N) (setq ans (getkword \n选择扶手(L)左/(R)右/(B)双边/(N)无: )) (if (not ans)(setq ans N)) (setq blksp (open blksp.lst r)) (if (not (equal blksp nil)) (setq blk (read-line blksp)) ) (if (equal blk nil) (setq blk sp1) (setq blk (strcat sp (itoa (1+ (atoi (substr blk 3))))) ) ) (setq r (distance cp lp)) (setq ang (/ step r)) ; determines the angle of the step (setq ac (angle cp lp)) (setq rp (polar lp ac wide) lp1 (list (car lp) (cadr lp) riser) lp4 (list (car rp) (cadr rp) riser) count 0 el riser al ang ) (setq diag (+ ac ang)) (setq lp2 (list (car (polar cp diag r)) (cadr (polar cp diag r)) riser) lp3 (list (car (polar cp diag (+ r wide))) (cadr (polar cp diag (+ r wide))) riser) lh (polar cp (+ ac (/ ang 2)) (+ r (/ wide 15))) ; left bottom hrl lh1 (list (car lh) (cadr lh) (+ (caddr lh) riser)) lh2 (list (car lh1) (cadr lh1) (+ (caddr lh1) hrl)); left top hrl sht (polar

文档评论(0)

dashewan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档