乐筑天下

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

[编程交流] 我想编辑 pcode.lsp 在 AutoCAD 中显示点号。可以帮忙 ?

[复制链接]

1

主题

1

帖子

0

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-9-18 08:10:49 | 显示全部楼层 |阅读模式
我想编辑 pcode.lsp 在 AutoCAD 中显示点号。可以帮忙 ?
  1. (defun c:pcode (/ *error* fn f l p ok lay XYZ RL CODE )
  2.          (defun *error* (msg)
  3.            (if    (and f (= (type f) 'FILE))
  4.              (close f) ;close the file
  5.              ) ;_ end of if
  6.            ) ;_ end of defun
  7.          
  8.          (if (and (setq fn (getfiled "\n" "" "csv;pnt;txt;*" 16)) ; get csv file
  9.            (setq f (open fn "r"))
  10.            ) ;_ end of and
  11.            (progn
  12.            (while (setq $ (read-line f))
  13.              (setq l (read (strcat "( " (vl-string-translate "," " " $) " )"))) ; retriction layer/pcode without spacing
  14.              (if (setq ok (= (length l) 5)) ; format = '( p x y z d )
  15.         (progn (foreach x (list car last)
  16.              (setq l (subst (vl-princ-to-string (x l)) (x l) l)))
  17.                (if (and    (setq lay (last l)
  18.                       p      (vl-remove-if-not 'numberp (cdr l))
  19.                       ) ;_ end of setq
  20.                 (= 3 (length p)) ; format = '( x y z )
  21.                 (setq p (trans p 1 0)) ; convert point to ucs
  22.                 ) ;_ end of and
  23.              (foreach xyz '(
  24.                                 (list
  25.                        '(0 . "POINT")
  26.                        (cons 8 "XYZ") ;(cons 8 "POINT")
  27.                        (cons 10 p)
  28.                        )
  29.                        )
  30.                (entmakex (eval xyz)) ; create text & point entity foreach supplied dxf data
  31.                  (foreach RL '(
  32.                                 (list
  33.                        '(0 . "TEXT")
  34.                        (cons 8 "RL")
  35.                        (cons 10 p)
  36.                        (cons 1 (rtos (caddr p) 2 2))
  37.                        (cons 40 (getvar 'textsize))
  38.                     (cons 11 p)
  39.                     (cons 71 0) ;Flags 0=Normal, 2=Backward, 4=Upside down
  40.                     (cons 72 2) ;Horizontal text justification,0=Left,1=Center,2=Right,4=Center,5=Fit
  41.                     (cons 73 1) ;Vertical text justification, 0=Baseline,1=Bottom,2=Middle,3=Top
  42.         
  43.                        )
  44.                        )
  45.                (entmakex (eval RL)) ; create text & point entity foreach supplied dxf data
  46.                  (foreach code '(
  47.                                 (list
  48.                        '(0 . "TEXT")
  49.                        (cons 8 "CODE")
  50.                        (cons 10 p)
  51.                        (cons 1 (strcat lay))
  52.                        (cons 40 (getvar 'textsize))
  53.                     (cons 11 p)
  54.                     (cons 71 0) ;Flags 0=Normal, 2=Backward, 4=Upside down
  55.                     (cons 72 2) ;Horizontal text justification,0=Left,1=Center,2=Right,4=Center,5=Fit
  56.                     (cons 73 3) ;Vertical text justification, 0=Baseline,1=Bottom,2=Middle,3=Top
  57.                        )
  58.                        )
  59.                (entmakex (eval  code)) ; create text & point entity foreach supplied dxf data
  60.         (foreach PTNO '(
  61.                                 (list
  62.                        '(0 . "TEXT")
  63.                        (cons 8 "PTNO")
  64.                        (cons 10 p)
  65.                        (cons 1 (strcat ptnum));HOW TO ADD POINT NUMBER
  66.                        (cons 40 (getvar 'textsize))
  67.                     (cons 11 p)
  68.                     (cons 71 0) ;Flags 0=Normal, 2=Backward, 4=Upside down
  69.                     (cons 72 2) ;Horizontal text justification,0=Left,1=Center,2=Right,4=Center,5=Fit
  70.                     (cons 73 1) ;Vertical text justification, 0=Baseline,1=Bottom,2=Middle,3=Top
  71.                        )
  72.                        )
  73.                (entmakex (eval  PTNO)) ; create text & point entity foreach supplied dxf data
  74.         
  75.         ) ;_ end of foreach
  76.         ) ;_ end of foreach
  77.         ) ;_ end of foreach
  78.         ) ;_ end of foreach
  79.              ) ;_ end of if
  80.                ) ;_ end of progn
  81.         (setq $ nil) ; exit invalid format
  82.         ) ;_ end of if
  83.              ) ;_ end of while
  84.         (if (not ok)(alert "Invalid format! Should be PXYZD"))
  85.            )
  86.                ) ;_ end of if
  87.          (if (and f (= (type f) 'FILE))
  88.            (close f) ;close the file
  89.            ) ;_ end of if
  90.          (princ)
  91.          ) ;_ end of defun


回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-9-18 09:17:43 | 显示全部楼层
看看
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2024-11-22 01:34 , Processed in 0.191083 second(s), 56 queries .

© 2020-2024 乐筑天下

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