;;;功能:测量并写坐标(表格方式) (输出XYZ)

;;;日期:zml84 于 2007-04-07

;;;========================================

(defun c:zbbg ()

;;命令回显

(setvar "CMDECHO" 0)

(command "undo" "be")

;;捕捉设置

(setq osmode_old (getvar "OSMODE"))

;;参数设置

(if (= 内框颜色 nil)

(setq 内框颜色 1

文字颜色 2

外框颜色 3

坐标精度 3

表格_高度 6

表格_宽度1

16

表格_宽度2

10

表格_宽度3

25

表头字高 2.5

表中字高 2.0

)

)

;;绘制表头

(initget "G g")

(setq pt0 (getpoint "\\n请指定表格绘制位置,或者 [改变参数(G)]:"))

(if (or (= pt0 "G") (= pt0 "g"))

(progn

(sz)

(setq pt0 (getpoint "\\n请指定表格绘制位置:"))

)

)

(setq pt0_x (car pt0)

pt0_y (cadr pt0)

)

(SETQ PT1 (polar PT0 0 表格_宽度1)

PT3 (polar PT1 0 表格_宽度2)

PT5 (polar PT3 0 表格_宽度3)

PT7 (polar PT5 0 表格_宽度3)

PT701 (polar PT7 0 表格_宽度3)

PT2 (polar PT1 (* -0.5 PI) 表格_高度)

PT4 (polar PT3 (* -0.5 PI) 表格_高度)

PT6 (polar PT5 (* -0.5 PI) 表格_高度)

PT8 (polar PT7 (* -0.5 PI) 表格_高度)

PT801 (polar PT701 (* -0.5 PI) 表格_高度)

PT9 (polar PT0 (* -0.5 PI) 表格_高度)

)

(COMMAND "color" 内框颜色)

(COMMAND "PLINE" PT0 PT701 PT801 PT9 PT0 "")

(COMMAND "PLINE" PT1 PT2 PT4 PT3 PT4 PT6 PT5 PT6 PT8 PT7 pt8 pt801

pt701 "")

(SETQ ZBS1 (entlast))

(SETQ PT10 (polar PT0 (* -0.5 PI) (/ 表格_高度 2.0))

PT10 (polar PT10 0 (/ 表格_宽度1 2.0))

)

(SETQ PT11 (polar PT10 0 (/ (+ 表格_宽度1 表格_宽度2) 2.0))

PT12 (polar PT11 0 (/ (+ 表格_宽度2 表格_宽度3) 2.0))

PT13 (polar PT12 0 表格_宽度3)

PT14 (polar PT13 0 表格_宽度3)

)

(COMMAND "color" 文字颜色)

(COMMAND "TEXT" "J" "MC" PT10 表头字高 0.0 "编  号")

(COMMAND "TEXT" "J" "MC" PT11 表头字高 0.0 "点号")

(COMMAND "TEXT" "J" "MC" PT12 表头字高 0.0 "坐 标(X)")

(COMMAND "TEXT" "J" "MC" PT13 表头字高 0.0 "坐 标(Y)")

(COMMAND "TEXT" "J" "MC" PT14 表头字高 0.0 "坐 标(Z)")

;;表头绘制完毕

;;下面点取待测点

(SETQ I 1)

(setvar "OSMODE" osmode_old)

(WHILE (/= nil

(SETQ PTI

(GETPOINT (strcat "\\n请指定要测量位置:")

)

)

)

(setq osmode_old (getvar "OSMODE")) ;设置捕捉模式

(setvar "OSMODE" 0)

(COMMAND "COPY" ZBS1 "" pt0 pt9)

(SETQ ZBS1  (entlast)

pt11  (polar PT11 (* -0.5 PI) 表格_高度)

pt12  (polar PT12 (* -0.5 PI) 表格_高度)

pt13  (polar PT13 (* -0.5 PI) 表格_高度)

pt14  (polar PT14 (* -0.5 PI) 表格_高度)

pti_x (rtos (car PTI) 2 坐标精度)

pti_y (rtos (cadr PTI) 2 坐标精度)

pti_z (rtos (caddr PTI) 2 坐标精度)

)

(princ (strcat "X=" pti_y "  Y=" pti_x "  Z=" pti_z))

(COMMAND "TEXT"

"J"

"MC"

PT11

表中字高

0.0

(strcat (itoa i) "#")

)

(COMMAND "TEXT" "J" "MC" PT12 表中字高 0.0 pti_x)

(COMMAND "TEXT" "J" "MC" PT13 表中字高 0.0 pti_y)

(COMMAND "TEXT" "J" "MC" PT14 表中字高 0.0 pti_z)

(setq i (+ i 1))

(setvar "OSMODE" osmode_old)

)

;;如果记录有坐标数据,就绘制外边框

(if (> i 1)

(progn

(setq osmode_old (getvar "OSMODE")) ;设置捕捉模式

(setvar "OSMODE" 0)

;;绘制外框

(SETQ PT701 (polar PT701 (* -0.5 PI) (* 表格_高度 I)))

(COMMAND "color" 外框颜色)

(COMMAND "rectang" "W" 0.2 PT0 PT701)

;;编号信息

(setq xxx nil

xxx (getstring T "\\n请输入编号信息: ")

)

(if (= xxx "")

(setq xxx "请写编号信息")

)

(setq pt9 (polar PT9 (* -0.5 PI) (* 表格_高度 (- I 1) 0.5))

pt9 (polar PT9 0 (/ 表格_宽度1 2.0))

)

(COMMAND "TEXT" "J" "MC" PT9 表中字高 0.0 xxx)

(princ (strcat "\\n操作已完成,共收集到"

(itoa (- i 1))

"个坐标点。"

)

)

)

(princ "\\n操作已完成,没有收集到坐标点!!")

)

;;退出处理

(command "undo" "e")

(if (= i 1)

(command "undo" 1)

)

(setvar "OSMODE" osmode_old)

(setvar "CMDECHO" 1)

(princ)

)

;;;===================================================

(defun c:sz ()

(sz)

(princ

"\\n键入命令\\"SZ\\"可进行坐标测量绘制时用到的参数设置。"

)

(princ)

)

;;;===================================================

;;;设置  参数

(defun sz ()

(princ "\\n设置坐标标注中的参数,请输入选项:")

(princ (strcat "\\n[第1列宽度(1)"     "/第2列表格宽度(2)"

"/第3列表格宽度(3)"     "/表格高度(4)/"

"\\n表头字高(5)"     "/表中字高(6)"

"/恢复默认值(0)]"

)

)

(setq ii (getint "\\n请输入选项:")

)

(if (or (= ii nil) (< ii 0) (> ii 6))

(princ "\\n参数无改变,设置完成!")

(cond

((= ii 0)

(progn

(setq 内框颜色 1

文字颜色 2

外框颜色 3

坐标精度 3

)

(setq 表格_高度 6

表格_宽度1

16

表格_宽度2

10

表格_宽度3

25

表头字高 2.5

表中字高 2.0

)

(princ "\\n参数已全部恢复至默认值。")

)

)

((= ii 1)

(progn (princ (strcat "\\n请输入第1列宽度

(rtos 表格_宽度1 2 坐标精度)

">:"

)

)

(setq 表格_宽度1_x (getdist))

(if (= 表格_宽度1_x nil)

(princ "第1列宽度无改变!")

(= 表格_宽度1 表格_宽度1_x)

)

)

)

((= ii 2)

(progn (princ (strcat "\\n请输入第2列宽度

(rtos 表格_宽度2 2 坐标精度)

">:"

)

)

(setq 表格_宽度2_x (getdist))

(if (= 表格_宽度2_x nil)

(princ "第1列宽度无改变!")

(= 表格_宽度2 表格_宽度2_x)

)

)

)

((= ii 3)

(progn (princ (strcat "\\n请输入第3~5列宽度

(rtos 表格_宽度3 2 坐标精度)

">:"

)

)

(setq 表格_宽度3_x (getdist))

(if (= 表格_宽度3_x nil)

(princ "第3列宽度无改变!")

(= 表格_宽度3 表格_宽度3_x)

)

)

)

((= ii 4)

(progn (princ (strcat "\\n请输入表格高度

(rtos 表格_高度 2 坐标精度)

">:"

)

)

(setq 表格_高度_x (getdist))

(if (= 表格_高度_x nil)

(princ "表格高度无改变!")

(= 表格_高度 表格_高度_x)

)

)

)

((= ii 5)

(progn (princ (strcat "\\n请输入表头字高

(rtos 表头字高 2 坐标精度)

">:"

)

)

(setq 表头字高_x (getdist))

(if (= 表头字高_x nil)

(princ "表头字高无改变!")

(= 表头字高 表头字高_x)

)

)

)

((= ii 6)

(progn (princ (strcat "\\n请输入表中字高

(rtos 表中字高 2 坐标精度)

">:"

)

)

(setq 表中字高_x (getdist))

(if (= 表中字高_x nil)

(princ "表中字高无改变!")

(= 表中字高 表中字高_x)

)

)

)

(t nil)

)

)

(princ)

)

;;;==================================================

;;以下为加载时提示信息

(princ "\\n键入命令\\"SZ\\"可进行参数设置。")

(princ "\\n键入命令\\"ZB\\"可进行坐标测量绘制(表格方式)。")

(princ)

lisp pause 坐标值_lisp 已知坐标绘断面图_测量并写坐标(表格方式) - AutoLISP/Visual LISP...相关推荐

  1. lisp 已知坐标绘断面图_【干货】横断面测量数据批量转换成断面图,CASS应该如何做?...

    最近,一个小伙伴私信我咨询:已经完成了横断面外业测量,断面线上的高程点都是按顺序采集的(下图所示),想批量输出横断面图.如果一条条横断面手工连点绘制断面线,然后绘制断面图-- 重复操作,大量的断面也会 ...

  2. 已知坐标增量求坐标方位角_测量员经常应用到的坐标测量!干货!

    坐标测量是用来测量施工目标点或者离散点在某一个施工坐标系下的坐标,它最主要的技术方法有自由设站,GPS单点定位法,CSRTK法,激光跟踪法,在用以上方式计算的时候需要用到的仪器设备主要有全站仪,激光跟 ...

  3. lisp pause 坐标值_求助,提取坐标的x值、y值不对,请问怎么修改

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 (defun c:hq() (setq pa (getpoint "输入左下点:")) ;输入左下桩坐标 (setq r1 (getr ...

  4. lisp文字上标源码_创建文本/标注样式源码 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

    本帖最后由 zhengxiansz 于 2014-4-27 11:27 编辑 GU_xl你好! 请帮我看一下这个创建文本/标注样式源码.第一次输入IT1命令时没有报错的提示.如果重复输入IT1命令时就 ...

  5. lisp批量生成轴线_求批量插入图纸的程序 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

    不明白的是这样一个程序和解密有什么关联 归档文件合并.lsp 1.需要doslib函数库支持 2.需要手动建立c:\QGY_temp文件夹 (defun c:insdwgs() (princ &quo ...

  6. lisp新建标注式样_创建标注样式后续消零问题 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

    DIMASO      关                    创建标注对象 DIMSTYLE    ISO-25               当前标注样式 (只读) DIMADEC     0  ...

  7. matlab二维图形中确定一点的坐标系,在CAD中已知一个平面图中两个点的坐标如何建立坐标系以便求出图形中任一点的坐标?...

    在CAD中已知一个平面图中两个点的坐标如何建立坐标系以便求出图形中任一点的坐标?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一 ...

  8. 已知坐标增量求坐标方位角_详解坐标计算的方式!值得收藏!

    在工程施工过程中我们常常需要进行复杂的计算,应对于这样的问题,市面上出现了许多的专用测量软件,但因为其质量参差不齐,尤其是对于坐标的实际检查比较困难,容易让人走许多没必要的弯路,所以小编特意为各位带来 ...

  9. 已知长短轴求椭圆上任意一点的坐标_高中数学必修2:平面解析几何——椭圆(经典习题)...

    今天接着给大家分享关于高中数学必修2平面解析几何中椭圆知识点讲解,从三个方面进行讲解:基础梳理.要点整理.经典高考习题解题过程及答案. 一.基础梳理 1.椭圆的定义 2.椭圆的标准方程和几何性质 要点 ...

最新文章

  1. iptables 智能限速方案
  2. 2017年9月9日普级组 优美三角剖分
  3. Reasoning about Entailment with Neural Attention-学习笔记
  4. 记一次吐血的ping: unknown host
  5. 通过shell访问hive_【HIVE】SHELL调用Hive查询
  6. 学习MongoDB 六: MongoDB查询(游标操作、游标信息)(三)
  7. js文件里获取路由 vue_纯js文件中,怎么使用vue的路由
  8. mysql可视化界面创建表_mysql安装及可视化界面
  9. Python-Selenium Webdriver+google chrome浏览器爬取中国知网的文献之二
  10. 微信群越来越多,我该如何科学地管理?
  11. 【uniapp】 uni-app使用getPhoneNumber接口
  12. “海大与我“ Scrum Meeting(第十周会议记录)
  13. Openwrt编译进阶-修改ROOT密码,修改默认WiFi名称,修改主机名,修改主机型号
  14. 爱在深秋-稻城亚丁旅游途中的风花雪月
  15. javascript_实现
  16. 15个小时彻底搞懂NLP自然语言处理(2021最新版附赠课件笔记资料)【LP自然语言处理涉及到深度学习和神经网络的介绍、 Pytorch、 RNN自然语言处理】 笔记
  17. mysql 给用户取消权限_MySQL创建用户并授权及撤销用户权限
  18. python字典序列化是什么意思_python序列化中的字符串,列表,字典,类的序列化解释...
  19. 王道论坛《计算机网络》网课学习笔记
  20. JQuery实现slideToggle()滑动的效果

热门文章

  1. 小米miui12如何关闭手机桌面透明便签快捷入口?
  2. js用指定字符补全字符串到指定长度。
  3. Python自动化测试框架【Allure-pytest功能特性介绍】
  4. Selenium浏览器指纹模拟
  5. O缺缺缺缺氧 O缺缺氧
  6. 深度学习之经典网络架构AlexNet(二)
  7. JavaScript编写的胸罩罩杯尺寸计算器
  8. 红米k30至尊纪念版和k30pro哪个好?有什么区别?
  9. java自定义异常类的父类_Java 自定义异常类
  10. 统计学中的 DATA:Nominal,Ordinal, Interval and Ratio怎么区别