复杂征地图标注使用LISP语言实现的方法

合集下载

Lisp程序语言的具体实现和运用浅析

Lisp程序语言的具体实现和运用浅析

Lisp程序语言的具体实现和运用浅析一、引言:随着工业技术和生活水平的提高,室外管线的种类越来越多,对室外管线设计的要求就越来越高。

室外管网不仅仅需要在平面上按照相关的规范规程进行综合排布,还需要在竖向高度上进行精心安排,才能在有限的空间合理组织各种管线的布置。

而这种需求必然要求设计师拥有比较强大的软件来进行室外管线设计的工作。

然而目前国内许多设计机构在管线综合方面主要靠手工综合,而且竖向标高的碰撞上面基本不进行设计,都是靠施工单位在施工现场根据实际情况自行避让。

这样导致室外管网排布的混乱,既不规范,甚至带来安全隐患等因素。

往往发生拆了又建,建了又拆,很难统筹管理,后期维护困难等问题。

上面的情况一再发生,无论是地方政府还是设计单位、业主等都越来越意识到室外管网合理规划,统一综合设计的重要性和必要性。

而且手工进行综合设计已经难以胜任这样的工作,迫切需要强大的软件进行辅助设计。

目前能进行室外管网综合的软件主要有一些国产软件和AutoDesk公司的Revit系列软件,但是一些国产软件使用繁琐复杂,难以满足设计师的需求,而Revit这样的BIM软件虽然在管线碰撞等方面很有优势,但是对硬件要求高,需要专门培训,使用起来也比较复杂。

因此,开发出真正适合管网综合的程序就显得很有必要。

二、LISP和BIM的简介:LISP(LISt Processor,即列表处理语言),由约翰·麦卡锡在1960年左右创造的一种基于λ演算的函数式编程语言。

可以说Lisp语言抽象复杂却又大道至简,它的主要的特点:1代码量小,2功能全,3易扩展。

AutoLISP是由Autodesk公司开发的一种LISP程序语言,嵌入在AutoCAD 内部,具有智能的特点的编程语言。

通过AutoLISP编程,可以节省工程师很多时间。

AutoLISP程序语言在室外管网综合方面得天独厚的优势。

近几年BIM技术的方兴未艾,室外管网综合的性质决定了它比较适合采用BIM技术。

对LISP中扩展属性的操作在宗地属性录入时的应用

对LISP中扩展属性的操作在宗地属性录入时的应用

目前很多广泛应用于测绘行业中的软件都是基于入属性很不方便。

如果了解CASS中宗地属性的存储结AtuoCAD平台下开发的软件,而AutoLisp是为扩展和自构,利用VLISP可编译LISP命令,属性的录入和修改工定义CAD功能而设计的编程语言,它起源于20世纪作将会变得简便许多。

以下将介绍在CASS中宗地属性50年代末的Lisp语言。

AutoLisp被引入CAD内部,不仅的存储方式,以及利用LISP操作扩展属性的方法进行宗具备一般高级语言的基本结构和功能,而且还具有强大地属性批量录入和修改的流程。

的图形处理功能,由于AutoLisp易于掌握,因此是CAD用户使用较为广泛的编程语言之一。

近几年全国第二次土地调查和土地所有权、使用权及宅基在CASS中,宗地属性是利用扩展属性进行存储地使用权发证等工作已全面展开,人机交互式的属性录入工作的。

下面是一个显示宗地属性的LISP程序。

特别繁重,通过程序解决这一问题,具有一定的现实意义。

南方CASS地形地藉成图软件是基于AutoCAD平台技术开发的数字化数据采集系统。

它广泛应用于地形成在CASS环境下加载后,键入LOOKK,并选择已有图、地藉成图、工程测量三大领域。

很多测绘工作者在界址线,就会得到如下信息:基础测绘数字化成图和地籍调查时,常用的工作软件为南方CASS软件。

利用其简单快捷的专用工具,可以完成线划图的制作、属性录入等工作。

南方CASS自带宗地属性录入编辑界面:习惯在CAD中缩放移动鼠标的作业员通过界面录其中,以上自“-3”后面的内容即是宗地属性信息,而在CAD中利用LISP对于“-3”后面的扩展属性是可以进行批量赋予和修改的。

CASS中属性存储是采用表的形式存储的,比如宗二、宗地属性的存储一、软件介绍三、属性的存储原则山西省地质测绘院 崔剑凌对LISP中扩展属性的操作在宗地属性录入时的应用图1图2图350Copyright©博看网 . All Rights Reserved.首先根据外业调查情况,在CAD底图上圈定宗地界址线,并将调查得到的权利人姓名、宗地编号以及地类类型在底图上按属性对应层标注:地基本属性:(SOUTH (1000 . 300000) (1000 . 530428001005JC00005) (1000 . 白有春) (1000 . 072))SOUTH代表是基本南方属性,下面由四个元素组成:(1000 . 300000)表示南方属性宗地的代码;(1000 . 530428001005JC00005)表示宗地号;(1000 . 白有春)表示宗地权利人;(1000 . 072)表示宗地土地利用类型。

LISP 语言在CAD 道路设计中的各种应用

LISP 语言在CAD 道路设计中的各种应用

第三章LISP语言在CAD道路设计中的各种应用3.1绘制平面任意函数曲线的AutoLISP程序设计在各个工程设计领域中,经常要绘制一些曲线,特别是平面曲线,如水工结构的溢流曲线、机械设计的齿轮渐开曲线等。

在AutoCAD绘图软件中,可以将曲线上的点先计算好,再用线、多义线、样条曲线等方法绘制,这种方法需要进行大量计算,工作量较大,如果用EXCEL软件来辅助计算,可以减轻工作量;另外,可以针对具体的曲线类型,用AutoCAD 内嵌的AutoLISP语言,实现边计算边绘制的功能。

用这种方法绘制虽然快捷,但对于不同的曲线,则需编写同的AutoLISP程序,检查无误后才能运行,仍显繁琐。

能否用统一的程序,来实现各种平面函数曲线的绘制,我们尝试利用AutoCAD中强大的表达式计算功能来实现这一目的。

3.1.1平面函数曲线的类型和绘制方法平面函数曲线即是有简单函数表达式的曲线类型,可考虑经常遇到的4类:(1)直角坐标下形如y=f(x)的曲线;(2)直角坐标下的参数方程曲线;(3)极坐标下形如r=f(θ)的曲线;(4)极坐标下的参数方程曲线。

其中,只需增加一个平凡方程x=x,参数方程(2)就可以包括相应的直接表达形式(1),同样(4)可以包括(3)。

同时,极坐标形式可以通过:x=rcosθy=rsinθ转换为直角坐标表达。

因此从本质上说,4种类型都可以互相转换,把它们分类的目的是尽量采用函数的通常表达形式,以便于使用。

绘制时,参照曲线的手工绘制方法,需要给出曲线上的多个点,然后将它们连接起来。

若给出的点间隔很小,直接用折线段相连就可很好模拟该曲线,如果间隔较大,可以用样条曲线连接,使之比较光滑。

假设我们计算出足够多的点,简单用折线连接即可,为使该曲线成为一个整体,可用多义线的方式连接。

关键的问题是,如何计算出曲线上点的坐标。

由于曲线的函数表达式各种各样,不可能用统一的式子来表示。

可以考虑从外部输入表达式,然后针对该表达式进行计算,给出相应结果,就能够解决点坐标的计算问题。

标注坐标的lisp程序

标注坐标的lisp程序

标注坐标的lisp程序1、新建一个TXT文本文件,并将下面代码复制进文本内,如下图:2、将该文本文件保存并修改文件名为bzzb.lsp,这里的扩展名一定要改成lsp哦!然后就如下图这样3、在任何版本的AUTOCAD软件内命令行内输入“appload”命令,然后选择该文件进行加载程序,如下图4、程序加载好后,就可以在命令行内输入“bz”命令进行对图中文字注记进行分层显示了。

(defun c:bz();标注坐标(setvar "cmdecho" 0)(command "osnap" "app,end,center")(setq zbd (getpoint "\n请点击要标注坐标的点:"))(command "osnap" "off")(setq zbd2 (getpoint "\n请点击伸出的第二个点:"))(command "line" zbd zbd2 "")(setq zbd2x (car zbd2))(setq zbd2y (cadr zbd2))(setq zbdx (car zbd))(setq zbdy (cadr zbd))(if (>= zbd2x zbdx)(progn(command "line" zbd2 (list (+ zbd2x 30) zbd2y) "")(command "text" "s" "Standard" "j" "bl" (list (+ zbd2x 1.2) (+ zbd2y 1)) "2" "0" (strcat "X = " (rtos zbdy 2 3)))(command "text" "s" "Standard" "j" "tl" (list (+ zbd2x 1.2) (- zbd2y 1)) "2" "0" (strcat "Y = " (rtos zbdx 2 3))))(progn(command "line" zbd2 (list (- zbd2x 30) zbd2y) "")(command "text" "s" "Standard" "j" "bl" (list (- zbd2x 28) (+ zbd2y 1)) "2" "0" (strcat "X = " (rtos zbdy 2 3)))(command "text" "s" "Standard" "j" "tl" (list (- zbd2x 28) (- zbd2y 1)) "2" "0" (strcat "Y = " (rtos zbdx 2 3))))))。

城镇勘测定界中运用Visual LISP语言快速制作宗地图

城镇勘测定界中运用Visual LISP语言快速制作宗地图

城镇勘测定界中运用Visual LISP语言快速制作宗地图
冯瑞莲;毛卫民;曹树军;朱建军;宋义军
【期刊名称】《科技信息(学术版)》
【年(卷),期】2007(000)015
【摘要】本文介绍了用Visual LISP语言编程在AutoCAD软件环境下快速制作宗地图,自动注记距离、面积、点号,并改线型、缩比例尺,充分运用子程序,减小文件字节,方便操作,提高效率.
【总页数】4页(P441-443,445)
【作者】冯瑞莲;毛卫民;曹树军;朱建军;宋义军
【作者单位】潍坊市勘察测绘研究院;潍坊市勘察测绘研究院;潍坊市勘察测绘研究院;潍坊市勘察测绘研究院;潍坊市勘察测绘研究院
【正文语种】中文
【中图分类】TP3
【相关文献】
1.城镇勘测定界中运用Visual LISP语言快速制作宗地图 [J], 冯瑞莲;毛卫民;曹树军;朱建军;宋义军
2.利用VisualLisp语言实现CAD中轴线任意点的中边桩计算 [J], 张炜;陈俊样;刘新华
3.Visual LISP语言在自动剖面绘制中的应用 [J], 张亚东;姚文杰
4.基于VisualLISP语言快速提取CAD管线信息SWMM建模方法探索 [J], 宁存
鑫;汤钟;李翠萍;耿冰;成志轩
5.Visual Lisp语言在市政工程设计中的运用 [J], 王淮生;黄康
因版权原因,仅展示原文概要,查看原文内容请购买。

cad自动写标高lisp

cad自动写标高lisp

;;自动标高主程序(使用方法:新建文件,后缀名为.lsp,将全部内容粘贴过去,然后将lsp文件拖进cad窗口(即加载),输入命令xbg,按命令行提示操作即可)(defun c:xbg(/ xs_d os dim jd i_sc i_bg i_uni bg_jz pt_jz zb_jz pt_nt zb_nt bg_nt)(setvar "cmdecho" 0)(setvar "dimzin" 0)(setvar "blipmode" 0)(setq xs_d (getvar "dimzin"))(setq os (getvar "osmode"))(setq dim (getvar "dimzin"))(chk_style)(princ "\n适用于真实尺寸作图")(setq i_uni (getstring "\n图纸单位是mm/cm/m<cm>:")) (if (= "" i_uni) (setq i_uni "cm")) (cond ((= i_uni "mm") (setq i_bg 1000.0))((= i_uni "cm") (setq i_bg 100.0))((= i_uni "m") (setq i_bg 1.0))(t (setq i_bg 1.0)))(if (setq jd (getint "\n标高有效位数<3>:")) () (setq jd 3))(if (setq i_sc (getreal "\n比例系数<1>:")) () (setq i_sc 1))(if (setq bg_jz (getreal "\n输入基准点标高<100.0>:")) () (setq bg_jz 100.0))(setq pt_jz (getpoint "\n指定基准点:"))(setq zb_jz (cadr pt_jz))(d_fh pt_jz bg_jz) ;绘制基准点(while (setq pt_nt (getpoint "\n指定下一点:"))(progn(setq zb_nt (cadr pt_nt))(setq bg_nt (+ bg_jz (/ (- zb_nt zb_jz) i_bg)))(d_fh pt_nt bg_nt);绘制标准点))(setvar "dimzin" xs_d)(setvar "dimzin" dim));;测试子程序(defun c:css(/ pt bg)(setq pt (getpoint "\n````"))(setq bg 100.0)(setq jd 2)(setq i_sc 1)(d_fh));;标注标高(defun d_fh(pt bg / pt1)(setvar "osmode" 0)(command "line" (polar pt 0 (* 3.0 i_sc)) (polar pt 0 (* 7.0 i_sc)) "")(command "line" (polar pt 0 (* 5.0 i_sc)) (polar (polar pt 0 (* 5.0 i_sc)) (/ pi 3) (* 3.0 i_sc)) "") (command "line" (polar pt 0 (* 5.0 i_sc)) (polar (polar pt 0 (* 5.0 i_sc)) (* 2 (/ pi 3)) (* 3.0 i_sc)) "")(command "line" (polar (polar pt 0 (* 5.0 i_sc)) (* 2 (/ pi 3)) (* 3.0 i_sc)) (polar (polar (polar pt 0 (* 5.0 i_sc)) (* 2 (/ pi 3)) (* 3.0 i_sc)) 0 (* 12.0 i_sc)) "")(setq pt1 (polar (polar (polar pt 0 (* 5.0 i_sc)) (* 2 (/ pi 3)) (* 3.0 i_sc)) 0 (* 6.0 i_sc))) (command "_.text" "j" "m" (polar pt1 (/ pi 2) (* 1.8 i_sc)) (* 2.5 i_sc) "0" (rtos bg 2 jd)) (setvar "osmode" os))(defun chk_style();检查字型(setq chksty(tblsearch "style" "standa"))(if (null chksty)(progn(command "_style" "standa" "fsdb" "0" "0.7" "0" "n" "n" "n")))(setq chklay(tblsearch "layer" "文本"))(if (null chklay)(command "_layer" "m" "文本" "c" "3" "文本" ""))(setvar "clayer" "文本")(setvar "textstyle" "standa"))(princ "\n--自动写标高程序--hez87")(prin1)。

VB及Lisp在地形图整饰中的应用

VB及Lisp在地形图整饰中的应用
二次 开发 的 目的 。
域的高程变换 因子以进行高程修测 ( 这虽然精度不 高 , 在 可研 阶段 是可 以满 足要 求 的 ) 但 。
2 问题的分析
在 上述 问题 中 , 些 困难 导致 我们 不 能 利 用 以 一
前的做法 : 通常我 院 自行测量 的地形 图有原始资料
(r og文件 ) 的备 份 , 以无 论 是 转 换 高 程 系 统 还 是 所
( 江苏省 电力设计 院, 江苏 南京 2 10 ) 1 1 2

要 出于设 计需要 , 时需要对 已有地形 图进行整饰 , 中涉及 到对 大幅 面的地形 图的 高程 系统 的转换 以及 有 其

高程修测 , 常规的做法 已经 不能快捷 、 方便地 解决类似 问题 , 本文从 VB和 lp两个方 面着手寻 求解决这 些问题 的 i s
的地形图资料 , 需要做的是将 其坐标 系统和高程系 统转 换 成设计 需 要 的 系统 , 时 还需 要 对 以前 的地 有
形 图进 行 实 测 并 修 正 ( 测 ) 修 。这 就 需 要 进 行 不 同 系统 之 间 的转换 , 面 系 统 之 间 的转 换 利 用 坐 标 联 平 系测 量 就 可 以完 成 , 高 程 转 换 则 是 转 换 高 程 系 而 统; 修测 就是 在现 场 测 量 的 基 础 上 获取 图上 多 个 区
点数 以万 计 , 利 用 这 种 方 法 已 为不 宜 。因 此需 要 再
在 我 院的 电厂设 计 或 者 是 变 电所 设 计 中 , 先 首
对 Auo A 进行 二 次 开 发 , 高 程 注 记 进 行 批 量 tC D 将 修改 。Auo A 的二 次开 发工 具很 多 , tC D VB和 Au — tLs 言是 比较 常用 而 且 容 易 掌 握 的 , 面将 分 oi p语 下

LISP使用说明

LISP使用说明

1.TXGX-修正单行文字、多行文字或块属性的小数位。

2.(defun rtos2(number mode n/st gst sn ln cn dn)函数:RTOS函数的增强版,将指定的数字字符串转换为指定小数位的数字字符串;st为要处理的字符串,n为要保留的小数位数。

3.2PLI--显示二维多段线上各顶点的坐标值。

4.3PLI--显示三维多段线上各顶点的三维坐标值。

5.AAPL--该程序主要用于绘制横断面图时计算填挖方面积。

6.(defun aa4p(x1y1x2y2x3y3x4y4/)函数:给定四点计四点确定两直线之间的填挖方面积。

7.PLTR--将二维多段线顶点按相反顺序排列.8.BBG-标注标高9.SY2-拾取一个标高文本和一个点来设置坐标系.10.MBG-制作标高块BG.11.MBX-制作标高块BX.12.MBXY-制作标高块BXY13.GX-更新坐标标注.14.M2T-多行文本转换为单行文本。

15.SY-拾取已标注好的标高块来设置坐标系.16.BBX-标宽度17.BXY—标坐标18.SXY—根据标注好的坐标块设置坐标值。

19.RDTX2--拾取单行文本,多行文本的文本值。

20.GMT--规范化多行文字(command"-style""chbz""isocp.shx,hhztxt.shx""0""0.7""0""N""N")21.GMT2--增强版的规范化文字22.BR1---指定一点将所穿越的实体截断23.BBR----指定两点将所穿越的实体截断.24.BZWB----根据标注文字位置坐标,文字方向及标注文本字符串来进行文本标注25.DMTR----将横断面图中的断面线转换为平面图中的三维点线。

26.EZ—将指定点标高设置为当前标高。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
( i f ( n o t q d z h )
( s e t q q d z h 0 ) ) ( s e t q o b j z x( v l a x — e n a me - >v l a — o b j e c t z h x ) ) ( s e t q o b j z d( v l a x ・ e n a m e 一 > v l a — o b j e c t z d x ) )
是简化的桩号 ( 例如 K 0+ 2 2 0要标注 完整的 K 0+2 0 0 , 而不是 纬 地里简化的 + 2 0 0 ) , 这样也便 于在实 际征地放样 中快 速的找 到所 需的位置 。而这个要求 是纬地无 能为力 的。
( s e t q q d z h( g e t r e a l ” \ n输入路线起点桩号 < O>: ” ) )
2 本 程序 的 由来 和构 思
基于 纬地 的弊端 和业 主 的要 求 , 我 们考 虑能 不能使 用 L I S P 扩展程序一次性解决以上的问题 , 能不 能使生成好 的标注不 需要 进行再次 的加工 ( 譬如: 更 改 字体 , 更 改 图层 , 更 新 标 注 内容 等 等) , 这就是本程序 的由来 。那 么 , 有 了编制 这个 程序 的想 法 , 就
d a s h e d H H 、 、 t c o m ma n d s t y l e | z d b z r o m a n s H “ 『 o . 7 1 “ 1 5 f 、
那就涉及成千 上万的点位需要重新标 注 , 再使 用纬地 自身 的标 注
方法显然不太 现实 。
( s e t q s h u m( i f x( v l a x - c u r v e ・ g e t E n d P a r a m o b j z d ) ) ) ( s e t q N X S( v l a x - c u r v e ・ g e t S t a r t P o i n t o b j z x ) ) ( s e t q n q d( v l a x - c u r v e — g e t S t a r t P o i n t o b j z d ) ) ( s e t q J I S H U 0 ) ( r e p e a t s b u m
第4 l 卷 第2 l 期 2 0 1 5 年 7 月
山 西 建 筑
SHANXI ARCHI TECTURE
Vo 1 . 4l No. 21
J u 1 . 2 0 1 5
・2 5 5・

计 算 机 技 术 及 应 用

文章 编 号 : 1 0 0 9 . 6 8 2 5 ( 2 0 1 5) 2 1 — 0 2 5 5 — 0 3
需要好好构思这个 程序 的组 织结构 使其 能准确 无误 的实现 目标
要 求 。最 终 定 下 的 实 现 方 法 为 : 1 ) 把 生 成 的 道 路 中线 连成 一 个 整
体 的多段线 。2 ) 使 用一个 主程 序 , 提 供用 户选择 道路 中线 , 要标 注的征地线和输入路线起点桩号 的接 口。3 ) 为了应付特殊情 况 ,
( s e t q z h x( c a l " ( e n t s e l ” \ n选择路线 中线 : ” ) ) )
( s e t q z d x( c a r( e n t s e l ” 、 n选 择 要 标 注 的 征 地 线 : ” ) ) )
而且 , 现在业主一般 要求 每个点位 要标 注完 整 的桩号 , 而 不
( s e t v a r” d i mz i n " 0 )
修改更改后点 的位置坐标 , 在纬地 中通常先 使用工具一 >点到 曲
线 的命令求 出该 点的桩 号和距 离 , 然后手 动更改 原来 的标 注值 。 当只有极 少数点需 重新 标注 时 , 这 种方法 也不算 太过 浪费 时间 。
杂征地 图标注的方法 , 以满足现在征地 图出图工作精益求精 的要求 。 关键词 : L I S P语言 , 征地 图, 程序 , 模式 中图分类号 : T P 3 1 9 文献标识码 : A
( c o mma n d” u n d o ”” b e ” )
1 使 用纬 地本 身的标 注方 法的弊 端
在使用纬地生成征地线 的时候 , 随征地线 同时生成 的征地线 点位标注仅能反映 当前征地线的点位 坐标 , 那 么当征地线 修改 的 时候 , 这个标注已经不能反映更改后的征地线 的实 际位置 了。要
( s e t q o s mo d e( g e t v a r ” o s mo d e ” ) ) ( s e t q d i m z i n( g e t v a r ” d i m z i n ” ) )
但是 , 现 在 的 征 地 图通 常 需 要 从 项 目起 点 到 项 目终 点 全 线 微 调 ,
( s e t v a r o s m o d e O ) ( v l — l o a d — c o m) ( i f ( n o t ( t b l s e a r c h q t y p e ” Ma s h e d ” ) ) ( c o m m a n d” - l i n e t y p e " q o a d ” ”
复杂征地图标注使用 L I S P语 言 实 现 的 方 法
刘存 桂摘唐 Nhomakorabea勇
2 3 0 0 8 8 )
( 安徽省交通规划设计研究总院股份有限公司, 安徽 合肥
要: 分 析 了 使 用 纬地 本 身 的征 地 图标 注 方 法 的弊 端 , 阐述 了 L I S P程 序 的 由 来 和 构 思 , 主 要 研 究 了使 用 L I S P扩 展 程 序 实 现 复
相关文档
最新文档