乐筑天下

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

[编程交流] 需要lisp从中绘制圆

[复制链接]

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:38:32 | 显示全部楼层
 
CSV(逗号分隔值)格式只是一个简单的ASCI文件,与TXT格式没有区别。优点是内部数据格式良好。
 
当做
米尔恰
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 08:40:57 | 显示全部楼层
 
谢谢你,米尔恰。
 
这对我来说是新鲜事。
回复

使用道具 举报

2

主题

6

帖子

4

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 08:45:37 | 显示全部楼层
 
是的,我想要圈内的桩号。截止水平为“Z”值。
 
致以问候。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 08:46:10 | 显示全部楼层
将所有数据从Excel文件复制到记事本,并将其另存为(txt文件),然后尝试此代码。
 
注意:字符串的形式必须与您在第#6号帖子中介绍的相同
 
祝你好运
 
  1. (defun c:Test (/ filename openfile string pos lst p h)
  2. ;;;       Tharwat 27. March . 2012           ;;;
  3. ;;  form of the string must be as following    ;
  4. ;  "596 490554.848 2788544.836 - 0.700 75MM"   ;
  5. ; 596        = Number inside the circle       ;
  6. ; 490554.848    = x                              ;
  7. ; 2788544.836    = y                              ;
  8. ; - 0.700    = z                              ;
  9. ; 75MM    = diameter of circle             ;
  10. (if (setq filename (getfiled "Select txt file ..."
  11.                               (getvar 'dwgprefix)
  12.                               "txt"
  13.                               8
  14.                     )
  15.      )
  16.    (progn
  17.      (setq openfile (open filename "r"))
  18.      (while
  19.        (setq string (read-line openfile))
  20.         (while string
  21.           (if (setq pos (vl-string-search " " string))
  22.             (progn
  23.               (setq lst (cons (substr string 1 pos) lst))
  24.               (setq string (substr string (+ pos 2)))
  25.             )
  26.             (progn
  27.               (setq lst (cons string lst))
  28.               (setq string nil)
  29.             )
  30.           )
  31.         )
  32.         (setq lst (reverse lst))
  33.         (entmakex
  34.           (list
  35.             '(0 . "CIRCLE")
  36.             (cons 10
  37.                   (setq p
  38.                          (list (read (nth 1 lst))
  39.                                (read (nth 2 lst))
  40.                                (read (strcat (nth 3 lst) (nth 4 lst)))
  41.                          )
  42.                   )
  43.             )
  44.             (cons 40
  45.                   (setq h (read (vl-string-right-trim "MM" (nth 5 lst))))
  46.             )
  47.           )
  48.         )
  49.         (entmakex (list '(0 . "TEXT")
  50.                         (cons 10 p)
  51.                         (cons 11 p)
  52.                         (cons 1 (car lst))
  53.                         (cons 40 (/ h 2.))
  54.                         (cons 7 (getvar 'textstyle))
  55.                         '(50 . 0.)
  56.                         '(71 . 0)
  57.                         '(72 . 1)
  58.                         '(73 . 2)
  59.                         '(210 0.0 0.0 1.0)
  60.                   )
  61.         )
  62.         (setq lst nil)
  63.      )
  64.    )
  65.    (princ)
  66. )
  67. (princ)
  68. )
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:51:48 | 显示全部楼层
一条注释,如果您将粘贴数据从Excel复制到记事本,恐怕分隔符将是字符(ASCII代码9),而不是代码中使用的空格。
 
当做
米尔恰
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 08:53:42 | 显示全部楼层
 
这就是我在Cad 2010中测试代码时发生的情况,但在Cad 2009中,它将空间视为一个空间。
因此,如果它需要更改搜索t而不是搜索空间,我会非常乐意在有时间时替换它。
 
谢谢你的评论。
 
当做
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:57:02 | 显示全部楼层
这与AutoCAD的版本无关;这正是Excel将数据发送到剪贴板的方式。
 
当做
米尔恰
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 08:59:13 | 显示全部楼层
这很简单。
 
只需更换此。。
 
用这个。。。
 
  1. 3
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 09:03:19 | 显示全部楼层
Mircea,用户始终可以替换char。使用记事本中的查找和替换选项。。。
 
Tharwat,变量filename必须是完整HD path+filename的字符串,因此请考虑将(getfield)的整数从8更改为16。。。
 
M、 R。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 09:06:00 | 显示全部楼层
我想你只是从OP的帖子中复制了数据,从那里你得到了空格作为分隔符——请记住,他可能是从Excel中粘贴的,但在HTML中,字符会自动替换为空格,除非添加了特殊的格式标记。
 
当做
米尔恰
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 22:15 , Processed in 1.082461 second(s), 70 queries .

© 2020-2025 乐筑天下

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