乐筑天下

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

[编程交流] 要求:放置点和累积

[复制链接]

15

主题

38

帖子

28

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 08:11:34 | 显示全部楼层 |阅读模式
你好
 
我正在寻找一个lisp/command,它可以在多段线上每隔X距离放置点和累积距离(文本):
 
091147y4onchfb1hlnnh1g.jpg
 
谢谢
回复

使用道具 举报

VVA

1

主题

308

帖子

308

银币

初来乍到

Rank: 1

铜币
8
发表于 2022-7-6 08:51:54 | 显示全部楼层
试试看
  1. (defun C:TEST ( / pline dist n pt )
  2. (vl-load-com)
  3. (and
  4.    (setq pline (ssget "_:S:E" '((0 . "*POLYLINE"))))
  5.    (setq pline (ssname pline 0))
  6.    (setq dist (getdist "\nEnter distance: "))
  7.    (setq n 0)
  8.    (while
  9.      (setq pt (vlax-curve-getPointAtDist pline (setq txt (* (setq n (1+ n)) dist))))
  10.      (point pt)
  11.      (text-entmake
  12.        (rtos
  13.          txt
  14.          2  ;;_decimal
  15.          2  ;;_precision
  16.          )
  17.        (mapcar '+ pt
  18.                '(0.5 -0.5) ;_ dX dY Text
  19.                )
  20.        1 ;_heigth
  21.        0 ;_rotation
  22.        nil;_justification
  23.        )
  24.      )
  25.    )
  26. (princ)
  27. )
  28.    
  29.   (defun Point (pt)
  30.     (entmakex
  31.       (list (cons 0 "POINT")
  32.             (cons 10 pt)
  33.             )
  34.       )
  35.     )
  36.      (defun text-entmake (txt pnt height rotation justification / ent_list)
  37. ;;; borrowed from ShaggyDoc
  38. ;;; http://www.caduser.ru/forum/index.php?PAGE_NAME=read&FID=23&TID=30276
  39. ;;; Draw text with entmake Lisp function
  40. ;;; Arguments:
  41. ;;; txt - text string
  42. ;;; pnt - point in WCS
  43. ;;; height - text height
  44. ;;; rotation - rotation angle
  45. ;;; justification - justification ("C" "R" "M" "A" "F") or nil
  46. (setq  ent_list (list  '(0 . "TEXT")
  47.     '(100 . "AcDbEntity")
  48.     '(100 . "AcDbText")
  49.     (list 10 (car pnt) (cadr pnt) 0.0)
  50.     (cons 1 txt)
  51.     (cons 8 (getvar "CLAYER"))                        
  52.     (cons 40 height)
  53.     (cons 7 (getvar "TEXTSTYLE"))
  54.     (if justification
  55.       (cond
  56.         ((= justification "C")
  57.          '(72 . 1)
  58.         )
  59.         ((= justification "R")
  60.          '(72 . 2)
  61.         )
  62.         ((= justification "A")
  63.          '(72 . 3)
  64.         )
  65.         ((= justification "M")
  66.          '(72 . 4)
  67.         )
  68.         ((= justification "F")
  69.          '(72 . 5)
  70.         )
  71.         (t
  72.          '(72 . 0)
  73.         )
  74.       ) ;_ end of cond
  75.       '(72 . 0)
  76.     ) ;_ end of if
  77.     (cons 50 rotation)
  78.     (cons 51 (cdr(assoc 50 (entget(TBLOBJNAME "Style" (getvar "textstyle"))))))
  79.     (list 11 (car pnt) (cadr pnt) 0.0)
  80.     ) ;_ end of list
  81.   ) ;_ end of setq
  82.   (setq ent_list (entmakex ent_list))
  83. )
回复

使用道具 举报

15

主题

38

帖子

28

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 09:18:24 | 显示全部楼层
 
效果很好!
非常感谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 09:05 , Processed in 0.530153 second(s), 61 queries .

© 2020-2025 乐筑天下

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