将autocad中的信息获取到
Soooo。。。。。我一直在使用getpoints和“cond”但我似乎无法做到这一点,否则真的很原始。我找到的两个论坛是:
酒店雇员和饭馆雇员
在这里
我不确定链接到另一组论坛是否是坏事,但为了研究起见,我认为这些都应该链接起来。
我认为大多数人来到这里的主要问题是,他们可以在谷歌上找到90%的搜索内容,但很难将所有内容个性化到他们想要的格式。
我也受到同样的折磨。我可以复制这些人的代码,让它半途而废,但这并不能真正帮助我,因为我必须回去格式化它。我发誓我在谷歌上搜索并尝试40或50种不同的编码方式,然后再找你们。我从你们那里得到的免费编码的负罪感真的在增加。我希望当我问这些问题的时候,我不会显得太贪得无厌,你们真的是最好的。
现在,谈谈我所拥有的,以及我要追求的。
基本上,我想选择一个点,命名该点,并将其放入带有格式的记事本中。
例如:
(命令“whatever”)
提示输入文件名(位置对我来说无关紧要,可以是“c:\”或“用户\桌面”
(拾取点)
宣读内容包括:
PT1 111.1111 222.2222 333.3333
PT2 444.4444 555.5555 666.6666
以此类推,使“pt#”随着所有点的增加而增加。
此外,棘手的部分是我需要在数字之间使用“5空格”,而不使用“\t”。这正是我想用的,但这不是我今天的饼干崩塌的方式。
我要感谢任何一个走到这一步还没有离开的人。现在编码时间:
(defun c:P2FILE(/ fname file text pt p2)
(setq fname (getkword "\nenter filename"))
(setq file (open fname".txt" "w"))
(setq pt1 (getpoint "\nPICK POINT"))
(setq x (rtos (car pt1)))
(setq y (rtos (cadr pt1)))
(setq z (rtos (caddr Pt1)))
(setq text (strcat "PT1 "x" "y" "z))
(write-line text fname)
(close file)
)
现在我知道事情不对,但不知道如何解决:
“getkword”我确信是错误的命令,因为放入每个变量是一个荒谬的概念。
我的“strcat”没有我选的分数,但我甚至不知道如何开始做那个“cond”
提前感谢您的帮助! 你能解释更多吗?
记事本文件将用于什么?
为什么需要5个空间? 我已经更新了代码,虽然我直到tommarow才开始工作,但我已经非常接近了。但这是一个名为“netrology”的项目,用于土木工程等领域。这就是设计文件的设置方式。 您需要使用rtos来增加pt数量,还有一些其他错误,我已经更改了这些错误
(defun c:P2FILE(/ fname file text pt1 )
(setq fname (getstring "\nenter filename"))
(setq file (open fname "w"))
(setq J (getint "\nEnter start number"))
(while (setq pt1 (getpoint "\nPICK POINT enter to EXIT"))
(setq x (rtos (car pt1) 2 3 ))
(setq y (rtos (cadr pt1) 2 3 ))
(setq z (rtos (caddr Pt1) 2 3 ))
;I would write line for clarity
(setq text (strcat "PT" (rtos J2 0) " " x " " y " " z))
(write-line text fname)
(setq J (+ J 1))
)
(close fname)
)
嗯,它似乎不起作用。
以下是我所拥有的:
(defun c:p2f (/ p x y z x1 y1 z1 ptcoord textloc cs_from cs_to file text)
(setq j (getint "\nEnter start number"))
(while ;start while
(setq p (getpoint "CHOOSE YOUR POINT"))
(setq cs_from 1)
(setq cs_to 0)
(setq p1 (trans p cs_from cs_to 0))
(setq textloc (getpoint p "PLACE TEXT"))
(setq x (rtos (car p1) 2 3))
(setq y (rtos (cadr p1 2 3)))
(setq z (rtos (caddr P1) 2 3))
(setq ptcoord (strcat "pt"(rtos j)" "x" "y" "z))
(command "_leader" p textloc "" ptcoord "")
(setq text (strcat "pt"(rtos j)" "x" "y" "z))
(setq file (open "c:\design.txt" "w"))
(command file)
(write-line text)
(close file)
(setq j (+ j1))
(princ)
) ;end while
)
谢谢你的
(rtos (+ j 1))
这是给你的东西编号的一个很酷的技巧。
但仍然不起作用 首先,请注意使用WHILE-on你的摘录会在每个周期覆盖输出文件。
我对您的代码进行了一些更正,以正确地输出到文件:
(setq text (strcat "pt " x " " y " " z))
(setq file (open "c:\\design.txt" "w"))
(command file)
(write-line text file)
(close file) (defun c:p2f (/ p x y z j ptcoord textloc cs_from cs_to file text)
(setq j (getint "\nEnter start number"))
(while ;start while
(setq p (getpoint "CHOOSE YOUR POINT"))
(setq cs_from 1)
(setq cs_to 0)
(setq p1 (trans p cs_from cs_to 0))
(setq textloc (getpoint p "PLACE TEXT"))
(setq x (rtos (car p1)))
(setq y (rtos (cadr p1)))
(setq z (rtos (caddr P1)))
(setq ptcoord (strcat "pt"(rtos j)" "x" "y" "z))
(command "_leader" p textloc "" ptcoord "")
(setq text (strcat "pt"(rtos j)" "x" "y" "z))
(setq file (open "c:\\design.txt" "w"))
(write-line text file)
(close file)
(setq j (+ j 1))
(princ)
) ;end while
)
你说得对,“while”仍然很疯狂。我希望它从“input#”开始,然后继续添加。如果我想停下来,做点别的,然后重新开始,我可以从我留下的任何数字开始。 顺便说一句,我知道“ptcoord”和“text”不需要不同。我就是这样写的,所以我更容易阅读。 我认为你正在接近你的代码,只是一个观察
(setq file (open "c:\\design.txt" "w"))
应该是
(setq file (open "c:\\design.txt" "a"))
如果使用“w”打开文件,它会一直覆盖该文件。使用“a”打开允许您添加到文件 我做到了!
谢谢你们的帮助
完成代码:
(defun c:p2f (/ p x y z j ptcoord textloc cs_from cs_to file text filename)
(setq filename (strcat "c:\\"(getstring "\nEnter File Name")".txt"))
(setq j (getint "\nEnter Start Number"))
(while ;start while
(setq p (getpoint "Pick Point"))
(setq cs_from 1)
(setq cs_to 0)
(setq p1 (trans p cs_from cs_to 0))
(setq textloc (getpoint p "PLACE TEXT"))
(setq x (rtos (car p1)))
(setq y (rtos (cadr p1)))
(setq z (rtos (caddr P1)))
(setq ptcoord (strcat "pt"(rtos j 2 0)" "x" "y" "z))
(command "_leader" p textloc "" ptcoord "")
(setq file (open filename "a"))
(write-line ptcoord file)
(close file)
(setq j (+ j 1))
(princ)
) ;end while
)
谢谢JAMMIE!
谢谢MSasu!
还有BIGAL!
页:
[1]
2