乐筑天下

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

[编程交流] 文字沿多段线导出长度

[复制链接]

18

主题

95

帖子

69

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 18:42:53 | 显示全部楼层 |阅读模式
我让人口报告沿着多段线600公里。我需要文字(在图层结构下)沿多段线导出长度、距离、坐标以及文字的右侧或左侧。
请下载附件样本文件以了解更多详细信息。
沿文字距离的多段线。LSP
所需的样本报告。csv
样品图纸
回复

使用道具 举报

18

主题

95

帖子

69

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 19:01:28 | 显示全部楼层
海伊,请任何东西给lisp或请其他分开lisp可用的罚款。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 19:11:00 | 显示全部楼层
你好
 
这是这个过程的代码草案,所以测试一下这个例程,如果你需要修改的话告诉我。
 
  1. (defun c:test (/ f o s e lst p1 pt ang v l p _mt _t _parse)
  2. ;; Tharwat 16.08.2015                ;;
  3. (if (and (setq f (getfiled "Select Excel file :"
  4.                             (getvar 'dwgprefix)
  5.                             "csv"
  6.                             16
  7.                             )
  8.                 )
  9.           (setq o (open f "r"))
  10.           (princ "\nSelect LWpolyline :")
  11.           (setq s (ssget "_+.:S:E" '((0 . "LWPOLYLINE"))))
  12.           )
  13.    (progn
  14.      (defun _mt (pt str)
  15.        (entmakex (list '(0 . "MTEXT")
  16.                        '(100 . "AcDbEntity")
  17.                        '(100 . "AcDbMText")
  18.                        '(40 . 0.6)
  19.                        '(8 . "point")
  20.                        (cons 10 pt)
  21.                        (cons 1 str)
  22.                        (cons 7
  23.                              (if (tblsearch "STYLE" "STANDARD")
  24.                                "STANDARD"
  25.                                (getvar 'textstyle)
  26.                                )
  27.                              )
  28.                        )
  29.                  )
  30.        )
  31.      (defun _t (pt str)
  32.        (entmakex (list '(0 . "TEXT")
  33.                        '(8 . "Structure")
  34.                        (cons 10 pt)
  35.                        (cons 11 pt)
  36.                        (cons 1 str)
  37.                        (cons 7
  38.                              (if (tblsearch "STYLE" "ARIAL-N")
  39.                                "ARIAL-N"
  40.                                (getvar 'textstyle)
  41.                                )
  42.                              )
  43.                        '(8 . "Structure")
  44.                        '(40 . 2.0)
  45.                        '(50 . 0.0)
  46.                        ;; '(71 . 0)
  47.                        ;; '(72 . 1)
  48.                        ;; '(73 . 2)
  49.                        )
  50.                  )
  51.        )
  52.      (defun _parse (string delimiter / pos lst)
  53.        (while (setq pos (vl-string-search delimiter string 0))
  54.          (progn (setq lst (cons (substr string 1 pos) lst))
  55.                 (setq string (substr string (+ pos 2) (strlen string)))
  56.                 )
  57.          )
  58.        (if (and string (/= string ""))
  59.          (setq lst (cons string lst))
  60.          )
  61.        (setq lst (reverse lst))
  62.        )
  63.      (setq e (ssname s 0)
  64.            l (vlax-curve-getdistatpoint e (vlax-curve-getendpoint e))
  65.            p (vlax-curve-getstartpoint e)
  66.            )
  67.      (read-line o)
  68.      (while (setq v (read-line o))
  69.        (setq lst (_parse v ","))
  70.        (if (< (read (nth 5 lst)) l)
  71.          (progn
  72.            (setq pt  (vlax-curve-getpointatdist e (read (nth 5 lst)))
  73.                  ang (angle '(0. 0. 0.)
  74.                             (vlax-curve-getfirstderiv
  75.                               e
  76.                               (vlax-curve-getparamatpoint e pt)
  77.                               )
  78.                             )
  79.                  p1  (polar pt
  80.                             ((eval (if (eq (last lst) "Right")
  81.                                      '+
  82.                                      '-
  83.                                      )
  84.                                    )
  85.                               ang
  86.                               (* pi 1.5)
  87.                               )
  88.                             (read (nth 4 lst))
  89.                             )
  90.                  )
  91.            (entmake (list '(0 . "LINE")
  92.                           (cons 10 pt)
  93.                           (cons 11 p1)
  94.                           (cons 8 "perp")
  95.                           )
  96.                     )
  97.            (entmake (list '(0 . "POINT")
  98.                           (cons 10 p1)
  99.                           '(62 . 256)
  100.                           (assoc 8 (entget e))
  101.                           )
  102.                     )
  103.            (_mt (list (car p1) (cadr p1) (read (nth 3 lst)))
  104.                 (nth 4 lst)
  105.                 )
  106.            (_t p1 (car lst))
  107.            )
  108.          )
  109.        )
  110.      (close o)
  111.      )
  112.    )
  113. (princ)
  114. )(vl-load-com)
回复

使用道具 举报

18

主题

95

帖子

69

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 19:14:15 | 显示全部楼层
塔尔瓦特,
非常感谢您的回复,但我希望autocad提供csv报告。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 19:23:29 | 显示全部楼层
 
我做的恰恰相反?
你的第一篇帖子不够清晰,无法说明你想要的是excel,而不是从excel到cad!
回复

使用道具 举报

18

主题

95

帖子

69

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 19:33:28 | 显示全部楼层
对不起,混淆了,是的,我想要相反的(答案)Lisp程序。已绘制600km DWG文件数据。所以我需要根据附件csv要求导出数据。
回复

使用道具 举报

18

主题

95

帖子

69

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 19:50:31 | 显示全部楼层
嗨,塔瓦,你能给我密码吗。
需要图纸2的报告。CSV
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 13:52 , Processed in 0.768067 second(s), 66 queries .

© 2020-2025 乐筑天下

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