CAD制图软件的开发

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

;注记高程点
(defun c:gcd( / pt h) (command "layer" "m" "8310" "c" 1 "" "") (setq pt (getpoint "\n点位")) (while pt (setq h (getstring "\n高程= ")) (command "circle" pt (* 0.1 blc)) (command "text" (polar pt 5.5 (* 1.5 blc)) (* 2.0 blc) 0 h) (setq pt (getpoint "\n点位")) ) )
;注记缩放 注记缩放 (defun c:zjsf( / ss k ename pt) (setq k (getreal "\n请输入放大倍数")) (if k (progn (setq ss (ssget (list (cons 0 "TEXT")))) (if ss (progn (setq ename (ssname ss 0)) (while ename (setq pt (cdr (assoc 10 (entget ename)))) (command "scale" ename "" pt k) (setq ss (ssdel ename ss)) (setq ename (ssname ss 0)) ) )) )) (princ) )
课堂回顾
辽 宁 工 程 技 术 大 学 — 学
一,CAD的开发方式概述 CAD的开发方式概述 CAD
1) 2) 3) 4) Lisp语言(LIST Processing Language)-Visual Lisp ADS (AutoCAD Development System)-ARX VBA(Visual Basic for Application) VB B/S
三,插入独立符号和高程注记 插入独立符号和高程注记
辽 宁 工 程 技 术 大 学 — 学
;插入独立符号
(defun dlfh(km cm ys / fa pt) (command "layer" "m" cm "c" ys "" "") (setq pt (getpoint "\n 插入基点:")) (while pt (command "insert" km pt blc "" 0) (setq pt (getpoint "\n 下一个插入点(回车结束):")) ) (princ) )
五,从DWG文件中读注记,写到文件中
辽 宁 工 程 技 术 大 学 — 学
(defun c:rtext( / fp pf i num snum data str data1 str1) (setq pf (getfiled "指定坐标数据文件" "" "txt" 2)) (if pf (progn (setq fp (open pf "w")) (setq snum 0) (print "选择注记\n") (setq ss nill) (setq ss (ssget (list (cons 0 "TEXT")))) (if ss (progn (setq num (sslength ss) i 0) (while(< i num) (setq data1 (entget (ssname ss i))) (setq data (assoc 10 data1)) (setq str (cdr (assoc 1 data1))) (setq i (+ i 1) snum ( + snum 1)) (setq str (strcat (rtos i 2 0) " " (rtos (nth 1 data)) " " (rtos (nth 2 data)) " " str)) (write-line str fp) ) ) ) ) )
二,批量改变图形中多段线的线宽
辽 宁 工 程 技 术 大 学 — 学
;曲线宽度 (defun c:qxkd( / ss i ename kd) (setq ss (ssget (list (cons 0 "LWPOLYLINE")))) (if ss (progn (setq kd (getreal "\n线宽改为图上几毫米 ? ")) (if kd (progn (setq ne (sslength ss) i 0) (while (< i ne) (setq ename (ssname ss i)) (command "pedit" ename "w" (* kd blc) "") (setq i (1+ i)) ) )) )) (princ) )

辽 宁 工 程 技 术 大 学
☆ ☆
四,lisp程序数据文件的读写 五,独立地物符号的使用

☆ ☆ ☆
一,lisp程序的编写与使用 二,DWG文件实体的选择与数据获取
三,command命令在lisp程序中的使用
— 学

本次课的主要内容
辽 宁 工 程 技 术 大 学 — 学

三,插入独立符号和高程注记
☆ ☆
一,选择文本实体,对文本实体进行缩Байду номын сангаас 二,批量改变图形中多段线的线宽
☆ ☆
四,读数据文件,展绘坐标点 五,从DWG文件中读注记,写到文件中
一,选择文本实体,对文本实体进行缩放 选择文本实体, 辽 宁 工 程 技 术 大 学 — 学
二,Lisp语言的特点
1)解释性语言 2)基于表的语言,表是语言中最重要的元素 (setq c (+ a b)) 3)语法的特点:前缀表示法,即操作符在前,操作数在后 (defun add ( / a b c) (setq c (+ a b)) )
三,Lisp语言的使用
1)建立lisp程序 AutoLISP文件是扩展名为".LSP"的ASCII码的文本文件. 2) Lisp程序的使用 (1)在"Command:"状态下直接装入 Command: (LOAD "驱动器:\\路径\\文件名") 返回最后一个表达式的结果,若最后一个表达式是函数定义,则返回函数名. (2) 通过下拉菜单 "Tools" 的 "Load Application . . . " 项用对话框装入.
四,读数据文件,展绘坐标点
辽 宁 工 程 技 术 大 学 — 学
;展绘碎部点 (点号和坐标数据)
(defun c:readata( / fp pf sxb reco dh pt n s ii) (command "layer" "m" "000" "c" 7 "" "") (setq pf (getfiled "指定坐标数据文件" "" "txt" 2)) (if pf (progn (setq fp (open pf "r")) (setq reco (read-line fp) ii 1) (setq sxb (flz reco)) (while sxb (setq sxb (flz reco) n (length sxb)) (if (/= n 4) (cwts)) ;子程序输出错误信息 (setq dh (nth 0 sxb) pt (list (atof (nth 2 sxb)) (atof (nth 1 sxb)))) (setq pt1 (list (atof (nth 2 sxb)) (- (atof (nth 1 sxb)) 15.0))) (command "circle" pt blc) (command "text" pt (* 2 blc) 0 dh) (command "text" pt1 (* 2 blc) 0 (nth 3 sxb)) (setq reco (read-line fp) ii (1+ ii)) (setq sxb (flz reco)) ) (close fp) )) (princ) )
四,读数据文件,展绘坐标点
辽 宁 工 程 技 术 大 学 — 学
;子程序,分解字符串,存入到表 char 中 ;子程序输出错误信息 子程序输出错误信息 (defun flz(reco / i0 ii zc le char) (defun cwts() (setq char nil) (alert (strcat "\n" pf "文件的第 (itoa 文件的第" 文件的第 (if (and reco (/= reco ""))(progn ii) "行数据错误!")) 行数据错误! 行数据错误 (setq i0 1 ii 1 zc (substr reco 1 1)) (close fp) (while (/= zc "") (exit) (while (= zc " ") ) (setq i0 (1+ i0)) (setq zc (substr reco i0 1)) ) (if (/= zc "")(progn (setq ii i0) (while (and (/= zc " ") (/= zc "")) (setq ii (1+ ii)) (setq zc (substr reco ii 1)) ) (setq le (- ii i0)) (setq str (substr reco i0 le)) (if (= str ".") (setq str "")) (setq char (cons str char)) (setq i0 ii) )) ) )) (if char (reverse char) char) )
相关文档
最新文档