乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: alex.rees

[编程交流] 如何使用导出坐标数据

[复制链接]

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:38:13 | 显示全部楼层
你好,
 
我是一个全新的论坛,所以希望我已经张贴了这个OK。
 
这里编写的代码非常棒,几乎可以实现我想要的功能,只是它没有导出Z(高度,3D值)。这可能吗?文本文件中有第三列数据,但它是“0”,即使我尝试使用的数据是3D的。见下文
 
1,298768.523,696689.666,0
2,298788.225,696710.462,0
 
我注意到,导出的文件实际上就是我想要的,它是用“filename.dxf.xyz”或“filename.dwg.xyz”创建的。这只是一件小事,但可以编辑为“filename.xyz”吗
 
非常感谢大家迄今为止所做的工作。
 
测量员
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 07:40:29 | 显示全部楼层
+Z坐标(仅在文件中)和名称,不带。图纸。
 
  1. (defun c:oxy3(/ fPt oldEcho oldNum dFlc dDec fVar cX cY cZ cNum *error*)
  2. (defun *error*(msg)
  3.      (setvar "CMDECHO" 1)
  4.    (if fVar(close fVar))
  5.    (princ)
  6.    ); end of *error*
  7. (princ(strcat "DIMSCALE="(rtos(getvar "DIMSCALE"))" "
  8.         "DIMLFAC="(rtos(setq dFlc(getvar "DIMLFAC")))" "
  9.         "DIMDEC="(rtos(setq dDec(getvar "DIMDEC")))" "
  10. ); end strcat
  11. ); end princ       
  12. (setvar "CMDECHO" 0)
  13. (if(= 0(getvar "USERI3"))(setvar "USERI3" 1)
  14.    ); end if
  15. (setq cNum(getint(strcat "\nSpecify first point number <"
  16.                         (itoa(getvar "USERI3")) ">: ")))
  17. (if cNum (setvar "USERI3" cNum))
  18. (setq fVar(open(strcase(strcat(getvar "DWGPREFIX")
  19.                          (vl-filename-base
  20.                            (getvar "DWGNAME")) ".xyz")) "a"))
  21. (while
  22.    (setq fPt
  23.    (getpoint
  24.             (strcat "\nSpecify point or Right-Click to Quit <"(itoa(getvar "USERI3"))">: ")))
  25.      (if(vl-cmdf "_.dimordinate" fPt "_t"
  26.          (strcat
  27. "["(itoa(getvar "USERI3"))"]" "\\P"
  28.       (setq cX(rtos(* dFlc(car fPt))2 dDec)) "mE"  
  29.       "\\X"
  30.       (setq cY(rtos(* dFlc(cadr fPt))2 dDec)) "mN"
  31.       ); end strcat
  32.          pause
  33.          ); end vl-cmdf
  34. (progn
  35.   (setq cZ(rtos(* dFlc(last fPt))2 dDec))
  36.   (write-line (strcat(itoa(getvar "USERI3")) "," cX "," cY "," cZ)fVar)
  37.   (setvar "USERI3"(1+(getvar "USERI3")))
  38.   ); end progn
  39. ); end if
  40.    ); end while
  41.    (close fVar)
  42.    (setvar "CMDECHO" 1)
  43. (princ)
  44. ); end of c:oxy
  45. (princ "\nType OXY3 to tag 3D coordinates ")
回复

使用道具 举报

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:42:59 | 显示全部楼层
ASMI公司
 
太棒了,非常感谢!然而,现在得到了我需要的xyz列表,我失去了点数。可以添加吗?
 
文件名运行良好。
 
再次感谢
 
测量员
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 07:46:39 | 显示全部楼层
好啊我只是在文件中添加点编号。
回复

使用道具 举报

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:50:33 | 显示全部楼层
ASMI公司
 
很抱歉耽搁了,但我没有意识到你在上一条消息中编辑了脚本。
 
除了将文件导出到小数点后2位之外,这是完美的。我看了看能不能把这件事简单化?编辑,但由于我是新的lisp无法看到该做什么。
 
你有没有可能帮我做最后的改变?
 
我非常感激。非常感谢
 
测量员
回复

使用道具 举报

8

主题

1133

帖子

1164

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 07:52:29 | 显示全部楼层
不必更改Lisp,因为它采用维度设置(DIMDEC)中的小数位数。如果将标注样式设置为小数点后三位,则此Lisp将以小数点后三位导出。
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 07:55:02 | 显示全部楼层
 
您可以更改DIMDEC系统变量以更改小数位数。
 
或查找行:
 
  1. (setq cX(rtos(* dFlc(car fPt))2 [color="Blue"]dDec[/color]))
  2. (setq cY(rtos(* dFlc(cadr fPt))2 [color="Blue"]dDec[/color]))
  3. (setq cZ(rtos(* dFlc(last fPt))2 [color="Blue"]dDec[/color]))

 
并将dDec变量更改为所需的小数位数,例如0表示无。
回复

使用道具 举报

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:59:29 | 显示全部楼层
ASMI公司
 
谢谢使用DIMDEC可以正常工作,但不如编辑lisp方便。当我尝试对你建议的3行进行编辑时,我得到了如下数据
 
1,24905'-6.07",58066'-3.06",7'-5.5"
2,24907'-0.31",58068'-0.01",7'-6.67"
3,24908'-8.41",58069'-8.46",7'-7.21"
4,24910'-4.02",58071'-5.33",7'-8.24"
 
有什么问题吗?
 
非常感谢。
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 08:02:10 | 显示全部楼层
我认为您将RTOS函数的模式参数更改为3。这是RTOS(实到字符串)函数帮助:
 
回复

使用道具 举报

0

主题

1

帖子

1

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 08:05:57 | 显示全部楼层
有人知道如何更改lisp例程来更改坐标吗
从毫米到米
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 11:13 , Processed in 0.860403 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表