Bert_D 发表于 2022-7-6 14:35:15

导出x-y坐标

我正在寻找一个lisp,当你捕捉一个点时,它会在图形中放置一个带图形的点。
它还需要将带有点编号的坐标导出到文本文件,即trimble m5 rec文件。
它还需要自动编号,我需要它用于土地测量。
有人能帮我吗?米斯特。bert@live.nl

Freerefill 发表于 2022-7-6 14:43:53

你这么问真令人难以置信,几天前我遇到了一个类似的问题。
 
不确定这是否正是你想要的,但试一试:
 

(defun c:pclick( / filNam start point file)
(setq filNam "C:\\ptnumlist.txt")
(if (not (findfile filNam)) (close (open filNam "A")))
(setq start (getreal "\nEnter starting number: "))
(while (setq point (getpoint "\nClick on target point: "))
   (setq file (open filnam "A"))
   (write-line (strcat (rtos start 2 0) " " (rtos (car point) 2 5) "," (rtos (cadr point) 2 5)) file)
   (setq start (1+ start))
   (close file)
   )
)

Lee Mac 发表于 2022-7-6 14:45:34

检查这条线索的结尾,可能是你想要的
 
http://www.cadtutor.net/forum/showthread.php?t=19666

Bert_D 发表于 2022-7-6 14:49:42

 
它可以在autocad map中执行任何操作

Bert_D 发表于 2022-7-6 14:54:12

 
这是一个很好的Lisp程序,但我需要捕捉到一条线或符号中的一个点。
必须用1或100放置一个数字,并且必须自动编号。
并用点编号制作坐标列表。

Lee Mac 发表于 2022-7-6 15:02:33

对不起,当你说“抓拍”的时候,你的意思是你正在点击你需要的点,并且你想把它们编号并记录下来吗?

Bert_D 发表于 2022-7-6 15:04:25

 
我点击对象或符号,是的,数字需要记录在点编号、北距和东距以及高度中。(点编号,x,y,z)

Lee Mac 发表于 2022-7-6 15:09:59

当然,我的LISP的这个版本正是这样做的:

(defun c:ptwriter(/ *error* oldcmd file num pt)
(vl-load-com)

(defun *error* (msg)
   (if oldcmd
   (setvar "CMDECHO" oldcmd))
   (princ))

(setq oldcmd (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(if (and (setq file (getfiled "Create a Text File" "" "txt" 9))
          (not (initget 5))
          (setq num (getint "\nSpecify Starting Point Number: ")))
   (progn
   (setq file (open file "w"))
   (while (setq pt (getpoint (strcat "\nPosition Point Number " (rtos num) ": ")))
       (command "_point" "_non" pt)
       (write-line
         (strcat (rtos num) ","
               (rtos (car pt)) ","
               (rtos (cadr pt)) ","
               (rtos (caddr pt))) file)
       (Make_Text pt (rtos num) 0.0)
       (setq num (1+ num)))
   (close file)
   (princ "\n<< Points Written to File >>"))
   (princ "\n<!> No File Selected <!>"))
(setvar "CMDECHO" oldcmd)
(princ))

(defun Make_Text(pt val rot)
(entmake
   (list
   (cons 0 "TEXT")
   (cons 8 (getvar "CLAYER"))
   (cons 10 pt)
   (cons 40 (getvar "TEXTSIZE"))
   (cons 1 val)
   (cons 50 rot)
   (cons 7 (getvar "TEXTSTYLE"))
   (cons 71 0)
   (cons 72 1)
   (cons 73 2)
   (cons 11 pt))))


BIGAL 发表于 2022-7-6 15:12:19

做得好,李,像往常一样,西部最快的lisper(有代码)Bert\u D的几个点大多数测量仪器都会读取一个XYZ txt文件,所以你不需要特殊格式的文件来修剪。文件只需要Ptnum,X,Y,Z每行一个。关于Z,您是如何提议将Z值分配给点或线等的,否则点将始终为0.0。
 
我们使用CIV3d和其他软件,他们能够书写设计的3d线条和点。如果您必须手动添加Z值,那么这将非常耗费人力。
 
如果您使用的是CIV3d,那么您现在可以通过使用点编组来做您想做的事情。

eldon 发表于 2022-7-6 15:17:38

 
李·麦克,Lisp程序。我比前一个版本更喜欢这个版本,但是我可以大胆地指出几个可以改进的地方吗。
 
虽然点号是一个整数,但不知何故它会将自己变成一个十进制数。
 
在UCS中时,最新版本会将正确的UCS坐标写入文件,但会将点号文本放置在WCS坐标处。以前的版本将WCS坐标写入文件,但将点号放置在UCS坐标处。
 
否则我会把这个放在手边
页: [1] 2
查看完整版本: 导出x-y坐标