坐标提取lisp程序.docx
- 文档编号:29301686
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:25
- 大小:22.43KB
坐标提取lisp程序.docx
《坐标提取lisp程序.docx》由会员分享,可在线阅读,更多相关《坐标提取lisp程序.docx(25页珍藏版)》请在冰豆网上搜索。
坐标提取lisp程序
坐标提取lisp程序
2010-05-1720:
50:
07| 分类:
工程| 标签:
|字号大中小 订阅
;该程序主要用于CAD点(point)三维坐标提取,并将数据输出为CASS软件中使用的数据格式
;输出格式:
点号,,测量Y值,测量X值,测量Z值 例:
1,,100.3244,1232,433,25
;2010-05-17
;命令:
plzbsc
(defunc:
plzbsc()
(princ"\n选择所需输出的点(point):
")
(setqss(ssget));;选取坐标点
(setqn(sslengthss));计算坐标点数量
(setqff(open(getfiled"文件保存为""f:
/""dat"1)"w"));保存路径
(setqi0)
(repeatn
(setqspt(ssnamessi))
(setqept(entgetspt))
(if(=(cdr(assoc0ept))"POINT")
(progn
(setqlxyz(cdr(assoc10 ept)))
(setqsx(rtos(nth1lxyz)));将坐标值实数转换成字符
(setqsy(rtos(nth0lxyz)))
(setqsz(rtos(nth2lxyz)))
(setqi1(+i1));计算点序号
(setqsn(rtosi120));将序号实数转换成字符
(setqsxyz(strcatsn",," sy"," sx "," sz))
(write-linesxyzff)
)
)
(setqi(+i1))
);repeat
)
(prompt"*<<命令:
plzbsc>>*输出格式(点号,,Y,X,Z)**")
(prin1)
地形图上提取碎步点(高程点)坐标并输出到文本
2010-05-1808:
50:
38| 分类:
工程| 标签:
|字号大中小 订阅
利用程序提取地形图上碎步点的三维坐标。
并输出到记事本中,
该程序待修改的地方是不能选取点,并输出数据,待改正。
(defunc:
gcdtq()
(setvar"cmdecho"0);指令执行过程不响应
(setqen(entsel"选择高程点:
"));要求碰选一个高程点
(setqff(open(getfiled"文件保存为""f:
/""txt"1)"a"))
(setqen_data(entget(caren)));取得元体资料列表
(setqpt(cdr(assoc10en_data)));求得高程点坐标pt
(setqpy(rtos(nth1pt)));提取测量坐标Y值
(setqpx(rtos(nth0pt)));提取测量坐标X值
(setqpz(rtos(nth2pt)));提取测量坐标Z值
(setqsxyz(strcatpx" " py " " pz))
(write-linesxyzff)
(prin1)
)
(prompt"***************< gcdtq>>*****************") (prin1) 连续选取高程点并输出到文本 2010-05-1815: 33: 49| 分类: 工程| 标签: |字号大中小 订阅 ;2010-05-18 武赤公路 ;用于提取地形图中的高程点(碎步点)坐标,同时可以提取点(point)的坐标 ;本程序的缺点是不能过滤对象,同时也成为了他的优点;没有限制点的样式,块也可以,点也可以; ;本程序设计保存文件是可以在已有文件中继续添加数据,但是序号不再累积;这样可以判断不同时期选取的数据 (defunc: gcdtq() (setvar"cmdecho"0);指令执行过程不响应 (setqff(open(getfiled"文件保存为""f: /""dat"1)"a")) (setqen(entsel"选择高程点: "));要求碰选一个高程点 (setqi1);生成序号 (whileen (setqen_data(entget(caren)));取得元体资料列表 (setqpt(cdr(assoc10en_data)));求得高程点坐标pt (setqpy(rtos(nth1pt)));提取测量坐标系Y值 (setqpx(rtos(nth0pt)));提取测量坐标洗X值 (setqpz(rtos(nth2pt)));提取测量坐标系Z值 (setqpi(rtosi20)) (setqpxyz(strcatpi",,"px"," py "," pz));输出为CASS数据格式 (write-linepxyzff);写入文本 (setqen(entsel"\n选择下一个高程点<回车结束选择>: ")) (setqi(+i1)) ) (closefile) (prin1) ) (prompt"**从CASS中提取高程点或(point)点坐标,*< gcdtq>>*高程点提取**") (prin1) 横断面数据提取(待修改) 2010-05-1821: 59: 09| 分类: 工程| 标签: |字号大中小 订阅 (defunc: hdm() (setvar"cmdecho"0);指令执行过程不响应 ;计算方位角 (setqff(open(getfiled"文件保存为""c: /""hdm"1)"a")) (setqzh(getreal"请输入桩号: ")) ;计算横断面上点到中心线的垂距,数值分正负 (setqpt1(getpoint"\n拾取纵断面上的一点: "));用于确定横断面上的零点位置 (setqx1(carpt1));给纵断面上一点X赋值x1 (setqy1(cadrpt1));给纵断面上一点Y赋值y1 (setqpt2(getpoint"\n拾取纵断面上的第二点: "));用于确定横断面上的零点位置 (setqx2(carpt2));给纵断面上一点X赋值x1 (setqy2(cadrpt2));给纵断面上一点Y赋值y1 ;计算纵断面(pt1->pt2)方位角 (setqj1(atan(/(-y2y1)(+(-x2x1)0.00000001))))) (setqj2(/(*j1180)pi)) (if(>(-y2y1)0)(setqsgn1));符号判断 (if(=(-y2y1)0)(setqsgn0)) (if(<(-y2y1)0)(setqsgn-1)) (setqfwj(+(-180(*90sgn)j2)));方位角计算 (setqang(/(*fwjpi)180)) (setqen(entsel"选择高程点: "));要求碰选一个高程点 (whileen (setqen_data(entget(caren)));取得元体资料列表 (setqpt(cdr(assoc10en_data)));求得高程点坐标pt (setqpy(nth1pt));提取测量坐标系Y值 (setqpx(nth0pt));提取测量坐标洗X值 (setqpx2(sinang)) (setqpx3(cosang)) (setqcj(-(*(-pyy1)(cosang))(*(-pxx1)(sinang))));计算垂直距离(cj) (setqdist(rtoscj20)) (setqpz(rtos(nth2pt)));提取测量坐标系Z值 (setqpdz(strcatdist","pz));输出为CASS数据格式 (write-linepdzff);写入文本 (setqen(entsel"\n选择下一个高程点<回车结束选择>: ")) ) (closefile) (prin1) ) (prompt"**从CASS中提取高程点或(point)点坐标,*< hdm>>*输出横断面数据(平距,高程)**") (prin1) 批量提取CAD中点(point)三维坐标 2010-05-2223: 11: 43| 分类: 默认分类| 标签: |字号大中小 订阅 ;该程序主要用于CAD点(point)三维坐标提取,并将数据输出为CASS软件中使用的数据格式 ;输出格式: 点号,,测量Y值,测量X值,测量Z值 例: 1,,100.3244,1232,433,25 ;2010-05-17 罗泽钢 中国葛洲坝集团基础工程有限公司 ;命令: plzbsc (defunc: plzbsc() (princ"\n选择所需输出的点(point): ") (setqss(ssget));;选取坐标点 (setqn(sslengthss));计算坐标点数量 (setqff(open(getfiled"文件保存为""f: /""dat"1)"w"));保存路径 (setqi0) (repeatn (setqspt(ssnamessi)) (setqept(entgetspt)) (if(=(cdr(assoc0ept))"POINT") (progn (setqlxyz(cdr(assoc10 ept))) (setqsx(rtos(nth1lxyz)));将坐标值实数转换成字符 (setqsy(rtos(nth0lxyz))) (setqsz(rtos(nth2lxyz))) (setqi1(+i1));计算点序号 (setqsn(rtosi120));将序号实数转换成字符 (setqsxyz(strcatsn",," sy"," sx "," sz)) (write-linesxyzff) ) ) (setqi(+i1)) );repeat ) (prompt"*只适合point点<<命令: plzbsc>>*输出格式(点号,,Y,X,Z)**") (prin1) 从CASS提取高程点坐标输出到文本 2010-05-2223: 15: 18| 分类: 工程| 标签: 高程点 提取 cass |字号大中小 订阅 : 2010-05-17 (defunc: gcdtq() (setvar"cmdecho"0);指令执行过程不响应 (setqen(entsel"选择高程点: "));要求碰选一个高程点 (setqff(open(getfiled"文件保存为""f: /""txt"1)"a")) (setqen_data(entget(caren)));取得元体资料列表 (setqpt(cdr(assoc10en_data)));求得高程点坐标pt (setqpy(rtos(nth1pt)));提取测量坐标Y值 (setqpx(rtos(nth0pt)));提取测量坐标X值 (setqpz(rtos(nth2pt)));提取测量坐标Z值 (setqsxyz(strcatpx" " py " " pz)) (write-linesxyzff) (prin1) ) (prompt"***************< gcdtq>>*****************") (prin1); 修改后可以实现连续提取2011--02--25 (defunc: gcdtq() (setvar"cmdecho"0);指令执行过程不响应 (setqff(open(getfiled"文件保存为""f: /""dat"1)"a")) (setqn0) (while;循环语句 (setqen(entsel"\n选择高程点: "));要求碰选一个高程点 (redraw(caren)3);亮显高程点 (setqn(+n1)) (setqpn(rtosn20)) (setqen_data(entget(caren)));取得元体资料列表 (setqpt(cdr(assoc10en_data)));求得高程点坐标pt (setqpy(rtos(nth1pt)));提取测量坐标Y值 (setqpx(rtos(nth0pt)));提取测量坐标X值 (setqpz(rtos(nth2pt)));提取测量坐标Z值 (setqsxyz(strcatpn",,"px"," py "," pz)) (write-linesxyzff) (prin1) (princsxyz) )) (prompt"*****< gcdtq>>***提取高程点输出为CASS格式****") (prin1); VLISP与EXCEL之间连接及数据传输和函数集 2011-05-2908: 35: 14| 分类: 工程| 标签: |字号大中小 订阅 ;;;*************************************************************************;;; ;;;DSX-API-Excel.LSP ;;; ;;;VisualLISPActiveXAPIforExcel97,2000andXP ;;; ;;;Copyright(C)2002DavidM.Stein,Allrightsreserved ;;; ;;;*************************************************************************;;; ;;;Version2002.2205/15/02: Initialrelease ;;; ;;;*************************************************************************;;; ;;;CodeprovidedAS-ISwithoutwarrantyofanykindgivenforanypurpose ;;; ;;;oruse,eitherexplicitly,implicitlyorasaderivativeworkitem. ;;; ;;;UserassumesANYANDALLRISKandLIABILITYforuseofanyofthiscode;;; ;;;foranyconsequentialdamagesofanykind. Thesefunctionsaredefined;;; ;;;withinDSXTools2002.22whenloadedintoAutoCAD. Thisdocumentis ;;; ;;;providedforinformationalpurposesonly. ;;; ;;;*************************************************************************;;; (vl-load-com) ;;;************************************************************************* ;;;MODULE: DSX-TypeLib-Excel ;;;DEscriptION: Returnstypelib(olb)eitherExcel97,2000,orXP ;;;ARGS: none ;;;EXAMPLE: (DSX-TypeLib-Excel) ;;;************************************************************************* (defunDSX-TypeLib-Excel(/sysdrvtlb) (setqsysdrv(getenv"systemdrive")) (cond ((setqtlb(findfile(strcatsysdrv"\\ProgramFiles\\MicrosoftOffice\\Office\\Excel8.olb"))) tlb ) ((setqtlb(findfile(strcatsysdrv"\\ProgramFiles\\MicrosoftOffice\\Office\\Excel9.olb"))) tlb ) ((setqtlb(findfile(strcatsysdrv"\\ProgramFiles\\MicrosoftOffice\\Office\\Excel10.olb"))) tlb ) ((setqtlb(findfile(strcatsysdrv"\\ProgramFiles\\MicrosoftOffice\\Office\\Excel.exe"))) tlb ) ((setqtlb(findfile(strcatsysdrv"\\ProgramFiles\\MicrosoftOffice\\Office10\\Excel.exe"))) tlb ) ) ) ;;;************************************************************************* ;;;MODULE: DSX-Load-TypeLib-Excel ;;;DEscriptION: LoadstypelibforExcel97,2000orXP(whicheverisfound) ;;;ARGS: none ;;;EXAMPLE: (DSX-Load-TypeLib-Excel) ;;;************************************************************************* (defunDSX-Load-TypeLib-Excel(/tlbout) (dsx-princ"\n(DSX-Load-TypeLib-Excel)") (cond ((nullmsxl-xl24HourClock) (if(setqtlbfile(DSX-TypeLib-Excel)) (progn (setqtlbver(substr(vl-tlbfile)6)) (cond ((=tlbver"9") (princ"\nInitializingMicrosoftExcel2000...")) ((=tlbver"8") (princ"\nInitializingMicrosoftExcel97...")) ((=(vl-tlbfile)"Excel.exe") (princ"\nInitializingMicrosoftExcelXP...") ) ) (vlax-import-type-library : tlb- tlbfile : methods-prefix"msxl-" : properties-prefix"msxl-" : constants-prefix"msxl-" ) (ifmsxl-xl24HourClock(setqoutT)) ) ) ) (T(setqoutT)) ) out ) ;;;************************************************************************* ;;;MODULE: DSX-Open-Excel-New ;;;DEscriptION: OpensanewsessionofExcel97,2000orXP ;;;ARGS: display-mode("SHOW"or"HIDE") ;;;EXAMPLE: (setqxlapp(DSX-Open-Excel-New"SHOW")) ;;;************************************************************************* (defunDSX-Open-Excel-New(dmode/appsession
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 坐标 提取 lisp 程序