乐筑天下

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

[编程交流] 单线te周围的多段线

[复制链接]

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 00:29:10 | 显示全部楼层
从LISP中,不能这样调用另一个LISP例程。
回复

使用道具 举报

62

主题

466

帖子

404

银币

后起之秀

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

铜币
310
发表于 2022-7-6 00:33:22 | 显示全部楼层
很高兴知道。非常感谢。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 00:37:02 | 显示全部楼层
解决。。。
 
  1. (defun c:Test (/ ss)
  2. (if (setq ss (ssget '((0 . "TEXT,MTEXT"))))
  3.    (progn (sssetfirst nil ss)
  4.           (vla-sendcommand
  5.             (cond (*AcadDoc*)
  6.                   ((setq *AcadDoc* (vla-get-activedocument (vlax-get-acad-object))))
  7.             )
  8.             "_.TCIRCLE 0.3 RECTANGLES VARIABLE "
  9.           )
  10.    )
  11. )
  12. (princ)
  13. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:41:04 | 显示全部楼层
SendCommand-在极少数情况下,是非常有用的东西
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 00:44:13 | 显示全部楼层
罕见,如果小心使用。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:44:51 | 显示全部楼层
为了提供替代方案,这应该适用于任何UCS或视图中的所有文本:
 
  1. (defun c:tBox ( / ss )
  2. ;; © Lee Mac 2010
  3. (if
  4.    (and
  5.      (setq ss  (ssget '((0 . "TEXT"))))
  6.      (setq *o*
  7.        (cond
  8.          (
  9.            (getdist
  10.              (strcat "\nSpecify Offset <"
  11.                (rtos
  12.                  (setq *o*
  13.                    (cond ( *o* ) ( (* 0.5 (getvar 'TEXTSIZE)) ))
  14.                  )
  15.                )
  16.                "> : "
  17.              )
  18.            )
  19.          )
  20.          ( *o* )
  21.        )
  22.      )
  23.    )
  24.    (
  25.      (lambda ( i / e )
  26.        (while (setq e (ssname ss (setq i (1+ i))))
  27.          (entmakex
  28.            (append
  29.              (list
  30.                (cons 0 "LWPOLYLINE")
  31.                (cons 100 "AcDbEntity")
  32.                (cons 100 "AcDbPolyline")
  33.                (assoc 8 (entget e))
  34.                (cons 90 4)
  35.                (cons 70 1)
  36.                (cons 38 (caddr (dxf 10 (entget e))))
  37.                (assoc 210 (entget e))
  38.              )
  39.              (mapcar '(lambda ( x ) (cons 10 x)) (LM:TextBox e *o*))
  40.            )
  41.          )
  42.        )
  43.      )
  44.      -1
  45.    )
  46. )
  47. (princ)
  48. )
  49.                         
  50. (defun dxf ( code lst ) (cdr (assoc code lst)))
  51. ;;---------------------=={ Text Box }==-----------------------;;
  52. ;;                                                            ;;
  53. ;;  Returns the coordinates (in OCS) of the rectangle         ;;
  54. ;;  enclosing the specified Text entity with specified offset ;;
  55. ;;------------------------------------------------------------;;
  56. ;;  Author: Lee McDonnell, 2010                               ;;
  57. ;;                                                            ;;
  58. ;;  Copyright © 2010 by Lee McDonnell, All Rights Reserved.   ;;
  59. ;;  Contact: Lee Mac @ TheSwamp.org, CADTutor.net             ;;
  60. ;;------------------------------------------------------------;;
  61. ;;  Arguments:                                                ;;
  62. ;;  ent    - Text Entity                                      ;;
  63. ;;  offset - Optional offset                                  ;;
  64. ;;------------------------------------------------------------;;
  65. ;;  Returns:  List of Points (in OCS) framing the text        ;;
  66. ;;------------------------------------------------------------;;
  67. (defun LM:TextBox ( ent offset / el base ang m )
  68. ;; © Lee Mac 2010
  69. (if (eq "TEXT" (dxf 0 (setq el (entget ent))))
  70.    (mapcar
  71.      (function
  72.        (lambda ( x ) (mapcar (function +) (mxv m x) base))
  73.      )
  74.      (progn
  75.        (setq base (reverse (cdr (reverse (dxf 10 el)))) ;; 2D OCS
  76.              ang  (dxf 50 el) ;; to OCS X-axis
  77.               m   (list
  78.                     (list (cos ang) (- (sin ang)) 0)
  79.                     (list (sin ang)    (cos ang)  0)
  80.                     (list    0             0      1)
  81.                   )
  82.        )
  83.        (
  84.          (lambda ( data )
  85.            (mapcar
  86.              (function
  87.                (lambda ( g )
  88.                  (mapcar
  89.                    (function
  90.                      (lambda ( f ) ((eval f) data))
  91.                    )
  92.                    g
  93.                  )
  94.                )
  95.              )
  96.             '(
  97.                (
  98.                  (lambda ( x ) (- (caar   x) offset))
  99.                  (lambda ( x ) (- (cadar  x) offset))
  100.                )
  101.                (
  102.                  (lambda ( x ) (+ (caadr  x) offset))
  103.                  (lambda ( x ) (- (cadar  x) offset))
  104.                )
  105.                (
  106.                  (lambda ( x ) (+ (caadr  x) offset))
  107.                  (lambda ( x ) (+ (cadadr x) offset))
  108.                )
  109.                (
  110.                  (lambda ( x ) (- (caar   x) offset))
  111.                  (lambda ( x ) (+ (cadadr x) offset))
  112.                )
  113.              )
  114.            )
  115.          )
  116.          (textbox el)
  117.        )
  118.      )
  119.    )
  120. )
  121. )
  122. (defun mxv ( m v )
  123. (mapcar '(lambda ( r ) (apply '+ (mapcar '* r v))) m)
  124. )
回复

使用道具 举报

4

主题

78

帖子

74

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 00:49:04 | 显示全部楼层
有没有一种简单的方法来修改这个程序,使其同时适用于多行文字和多重引线?我在多重引线上使用dxf时出现错误,在选择多行文字时,它似乎不会绘制任何内容。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:52:30 | 显示全部楼层
此处为最新代码:
 
http://lee-mac.com/boxtext.html
 
虽然我没有将其修改为与MLeaders一起使用,但这是可以做到的。
回复

使用道具 举报

4

主题

78

帖子

74

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 00:55:39 | 显示全部楼层
谢谢,我不得不做一些作弊,因为多导文字与多行文字的属性并不完全相同,但在我的测试中似乎确实有效。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 01:00:07 | 显示全部楼层
 
不客气,克里斯
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 21:59 , Processed in 0.946837 second(s), 70 queries .

© 2020-2025 乐筑天下

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