乐筑天下

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

[编程交流] 将autocad中的信息获取到

[复制链接]

6

主题

29

帖子

23

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 07:16:48 | 显示全部楼层 |阅读模式
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”。这正是我想用的,但这不是我今天的饼干崩塌的方式。
 
我要感谢任何一个走到这一步还没有离开的人。现在编码时间:
 
  1. (defun c:P2FILE  (/ fname file text pt p2)
  2. (setq fname (getkword "\nenter filename"))
  3. (setq file (open fname".txt" "w"))
  4. (setq pt1 (getpoint "\nPICK POINT"))
  5. (setq x (rtos (car pt1)))
  6. (setq y (rtos (cadr pt1)))
  7. (setq z (rtos (caddr Pt1)))
  8. (setq text (strcat "PT1     "x"     "y"     "z))
  9. (write-line text fname)
  10. (close file)
  11. )

 
现在我知道事情不对,但不知道如何解决:
 
“getkword”我确信是错误的命令,因为放入每个变量是一个荒谬的概念。
 
我的“strcat”没有我选的分数,但我甚至不知道如何开始做那个“cond”
 
提前感谢您的帮助!
回复

使用道具 举报

4

主题

327

帖子

324

银币

初来乍到

Rank: 1

铜币
19
发表于 2022-7-6 07:21:51 | 显示全部楼层
你能解释更多吗?
记事本文件将用于什么?
为什么需要5个空间?
回复

使用道具 举报

6

主题

29

帖子

23

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 07:24:29 | 显示全部楼层
我已经更新了代码,虽然我直到tommarow才开始工作,但我已经非常接近了。但这是一个名为“netrology”的项目,用于土木工程等领域。这就是设计文件的设置方式。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 07:28:44 | 显示全部楼层
您需要使用rtos来增加pt数量,还有一些其他错误,我已经更改了这些错误
 
  1. (defun c:P2FILE  (/ fname file text pt1 )
  2. (setq fname (getstring "\nenter filename"))
  3. (setq file (open fname "w"))
  4. (setq J (getint "\nEnter start number"))
  5. (while (setq pt1 (getpoint "\nPICK POINT enter to EXIT"))
  6. (setq x (rtos (car pt1) 2 3 ))
  7. (setq y (rtos (cadr pt1) 2 3 ))
  8. (setq z (rtos (caddr Pt1) 2 3 ))
  9. ;I would write line for clarity
  10. (setq text (strcat "PT" (rtos J  2 0) "     " x "     " y "     " z))
  11. (write-line text fname)
  12. (setq J (+ J 1))
  13. )  
  14. (close fname)
  15. )
回复

使用道具 举报

6

主题

29

帖子

23

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 07:32:11 | 显示全部楼层
嗯,它似乎不起作用。
 
以下是我所拥有的:
 
  1. (defun c:p2f (/ p x y z x1 y1 z1 ptcoord textloc cs_from cs_to file text)
  2. (setq j (getint "\nEnter start number"))
  3. (while ;start while
  4. (setq p (getpoint "CHOOSE YOUR POINT"))
  5. (setq cs_from 1)
  6. (setq cs_to 0)
  7. (setq p1 (trans p cs_from cs_to 0))
  8. (setq textloc (getpoint p "PLACE TEXT"))
  9. (setq x (rtos (car p1) 2 3))
  10. (setq y (rtos (cadr p1 2 3)))
  11. (setq z (rtos (caddr P1) 2 3))
  12. (setq ptcoord (strcat "pt"(rtos j)"     "x"     "y"     "z))
  13. (command "_leader" p textloc "" ptcoord "")
  14. (setq text (strcat "pt"(rtos j)"     "x"     "y"     "z))
  15. (setq file (open "c:\design.txt" "w"))
  16. (command file)
  17. (write-line text)
  18. (close file)
  19. (setq j (+ j1))
  20. (princ)
  21. ) ;end while
  22. )

 
谢谢你的
  1. (rtos (+ j 1))

 
这是给你的东西编号的一个很酷的技巧。
 
但仍然不起作用
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:34:29 | 显示全部楼层
首先,请注意使用WHILE-on你的摘录会在每个周期覆盖输出文件。
我对您的代码进行了一些更正,以正确地输出到文件:
  1. (setq text (strcat "pt     " x "     " y "     " z))
  2. (setq file (open "c:\[color=red]\[/color]design.txt" "w"))
  3. [color=red][s](command file)[/s][/color]
  4. (write-line text [color=red]file[/color])
  5. (close file)
回复

使用道具 举报

6

主题

29

帖子

23

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 07:38:59 | 显示全部楼层
  1. (defun c:p2f (/ p x y z j ptcoord textloc cs_from cs_to file text)
  2. (setq j (getint "\nEnter start number"))
  3. (while ;start while
  4. (setq p (getpoint "CHOOSE YOUR POINT"))
  5. (setq cs_from 1)
  6. (setq cs_to 0)
  7. (setq p1 (trans p cs_from cs_to 0))
  8. (setq textloc (getpoint p "PLACE TEXT"))
  9. (setq x (rtos (car p1)))
  10. (setq y (rtos (cadr p1)))
  11. (setq z (rtos (caddr P1)))
  12. (setq ptcoord (strcat "pt"(rtos j)"     "x"     "y"     "z))
  13. (command "_leader" p textloc "" ptcoord "")
  14. (setq text (strcat "pt"(rtos j)"     "x"     "y"     "z))
  15. (setq file (open "c:\\design.txt" "w"))
  16. (write-line text file)
  17. (close file)
  18. (setq j (+ j 1))
  19. (princ)
  20. ) ;end while
  21. )

 
你说得对,“while”仍然很疯狂。我希望它从“input#”开始,然后继续添加。如果我想停下来,做点别的,然后重新开始,我可以从我留下的任何数字开始。
回复

使用道具 举报

6

主题

29

帖子

23

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 07:40:00 | 显示全部楼层
顺便说一句,我知道“ptcoord”和“text”不需要不同。我就是这样写的,所以我更容易阅读。
回复

使用道具 举报

5

主题

194

帖子

193

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-6 07:43:24 | 显示全部楼层
我认为你正在接近你的代码,只是一个观察
 
  1. (setq file (open "c:\\design.txt" "w"))

 
应该是
 
  1. (setq file (open "c:\\design.txt" "a"))

 
如果使用“w”打开文件,它会一直覆盖该文件。使用“a”打开允许您添加到文件
回复

使用道具 举报

6

主题

29

帖子

23

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 07:46:57 | 显示全部楼层
我做到了!
 
谢谢你们的帮助
 
完成代码:
 
  1. (defun c:p2f (/ p x y z j ptcoord textloc cs_from cs_to file text filename)
  2. (setq filename (strcat "c:\"(getstring "\nEnter File Name")".txt"))
  3. (setq j (getint "\nEnter Start Number"))
  4. (while ;start while
  5. (setq p (getpoint "Pick Point"))
  6. (setq cs_from 1)
  7. (setq cs_to 0)
  8. (setq p1 (trans p cs_from cs_to 0))
  9. (setq textloc (getpoint p "PLACE TEXT"))
  10. (setq x (rtos (car p1)))
  11. (setq y (rtos (cadr p1)))
  12. (setq z (rtos (caddr P1)))
  13. (setq ptcoord (strcat "pt"(rtos j 2 0)"     "x"     "y"     "z))
  14. (command "_leader" p textloc "" ptcoord "")
  15. (setq file (open filename "a"))
  16. (write-line ptcoord file)
  17. (close file)
  18. (setq j (+ j 1))
  19. (princ)
  20. ) ;end while
  21. )

 
谢谢JAMMIE!
谢谢MSasu!
还有BIGAL!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 10:03 , Processed in 0.404149 second(s), 72 queries .

© 2020-2025 乐筑天下

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