乐筑天下

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

[编程交流] 有什么常规安排吗

[复制链接]

6

主题

13

帖子

7

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-5 22:25:16 | 显示全部楼层 |阅读模式
你好
让我感谢大家在之前的帖子中给予的帮助。。。。。。。。。。现在我带来了另一个问题,客户提供了一个包含大量文本的auto cad图纸,他要求将所有文本放在网格和snap(grid1和snap1)。。。它没有被放置在网格上,并在前面捕捉。如果任何人有例行把所有的文字在网格上的时间,请提供我。
回复

使用道具 举报

0

主题

375

帖子

385

银币

限制会员

铜币
-7
发表于 2022-7-5 22:31:39 | 显示全部楼层
  1. (defun C:FIXTEXT ( / *error* acDoc round ss d)
  2. (defun round (n) (* d (fix (+ 0.5 (/ (abs n) d))) (if (minusp n) -1 1)))
  3. (vla-startundomark (setq acDoc (vla-get-activedocument (vlax-get-acad-object))))
  4. (defun *error* (msg)
  5.    (and
  6.      msg
  7.      (not (wcmatch (strcase msg) "*EXIT*,*QUIT*,*CANCEL*"))
  8.      (princ (strcat "\nError: " msg))
  9.      )
  10.    (vla-endundomark acDoc)
  11.    (princ)
  12.    )
  13. (if
  14.    (and
  15.      (setq ss (ssget ":L" '((0 . "TEXT"))))
  16.      (progn
  17.        (initget 6)
  18.        (setq d (getdist "\nSnap value: "))
  19.      )
  20.    )
  21.    (repeat (setq i (sslength ss))
  22.      (entmod
  23.        (mapcar
  24.          (function
  25.            (lambda (x)
  26.              (if
  27.                (<= 10 (car x) 11)
  28.                (cons (car x) (mapcar 'round (cdr x)))
  29.                x
  30.              )
  31.            )
  32.          )
  33.          (entget (ssname ss (setq i (1- i))))
  34.        )
  35.      )
  36.    )
  37. )
  38. (vla-endundomark acDoc)
  39. (princ)
  40. )
回复

使用道具 举报

10

主题

895

帖子

887

银币

初来乍到

Rank: 1

铜币
49
发表于 2022-7-5 22:36:43 | 显示全部楼层
当然,肯特。将(0。“TEXT”)更改为(0。”*TEXT”)或(0。“TEXT,多行文字”)。
回复

使用道具 举报

0

主题

375

帖子

385

银币

限制会员

铜币
-7
发表于 2022-7-5 22:44:58 | 显示全部楼层
 
谢谢你的推荐,哈桑-
 
通过在代码顶部的列表中添加以下行,该程序可以与文本和多行文字一起使用:
  1. (defun c:round ( / e i k l m s ) ;LEE MAC
  2.    (setq l
  3.       '(
  4.            ("CIRCLE"     10 40)
  5.            ("LINE"       10 11)
  6.            ("LWPOLYLINE" 10)
  7.            ("INSERT"     10)
  8.            ("POINT"      10)
  9.        )
  10.    )            
  11.    (if (null *tol*)
  12.        (setq *tol* 5.0)
  13.    )
  14.    (initget 6)
  15.    (if (setq m (getreal (strcat "\nSpecify rounding tolerance <" (rtos *tol*) ">: ")))
  16.        (setq *tol* m)
  17.        (setq m *tol*)
  18.    )
  19.    (if (setq s (ssget "_:L" '((0 . "CIRCLE,LINE,LWPOLYLINE,INSERT,POINT"))))
  20.        (repeat (setq i (sslength s))
  21.            (if (setq e (entget (ssname s (setq i (1- i))))
  22.                      k (cdr (assoc (cdr (assoc 0 e)) l))
  23.                )
  24.                (entmod (rounddxf k m e))
  25.            )
  26.        )
  27.    )
  28.    (princ)
  29. )
  30. (defun rounddxf ( key mod lst / rtn )
  31.    (foreach itm lst
  32.        (if (member (car itm) key)
  33.            (setq rtn (cons (cons (car itm) (roundvalue (cdr itm) mod)) rtn))
  34.            (setq rtn (cons itm rtn))
  35.        )
  36.    )
  37.    (reverse rtn)
  38. )
  39. (defun roundvalue ( val mod )
  40.    (if (listp val)
  41.        (mapcar '(lambda ( x ) (round x mod)) val)
  42.        (round val mod)
  43.    )
  44. )
  45. ;; Doug Broad
  46. (defun round ( value to )
  47.    (setq to (abs to))
  48.    (* to (fix (/ ((if (minusp value) - +) value (* to 0.5)) to)))
  49. )
  50. (princ)
回复

使用道具 举报

10

主题

895

帖子

887

银币

初来乍到

Rank: 1

铜币
49
发表于 2022-7-5 22:48:36 | 显示全部楼层
这是我的荣幸李
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-5 22:54:57 | 显示全部楼层
感谢stefan BMR、RKENT、LEE MAC、ASOS 2000。
感谢你们的努力和帮助,你们使我的工作变得轻松。。。。。。。谢谢
回复

使用道具 举报

0

主题

375

帖子

385

银币

限制会员

铜币
-7
发表于 2022-7-5 22:58:47 | 显示全部楼层
感谢您解决如何在网格上移动文本。。。当我这么做的时候,我想到的是这个例程可以被更改为与属性文本一起移动块。ASOS 2000,round例程只是移动块,而不是文本。显然,他习惯于只移动物体而不移动方块。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 23:03:13 | 显示全部楼层
我认为ssget语法中缺少一个。
 
  1. (defun c:round ( / e i k l m s ) ; LEE MAC
  2.    (setq l
  3.       '(
  4.            ("CIRCLE"     10 40)
  5.            ("LINE"       10 11)
  6.            ("LWPOLYLINE" 10)
  7.            ("INSERT"     10)
  8.            ("POINT"      10)
  9. [color=red]            ("MTEXT"      10)
  10.            ("TEXT"       10 11)[/color]
  11.        )
  12.    )
  13.    ...
  14. )
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-5 23:06:12 | 显示全部楼层
 
是的,这也是必需的-谢谢。
回复

使用道具 举报

6

主题

13

帖子

7

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-5 23:14:20 | 显示全部楼层
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 06:24 , Processed in 0.810184 second(s), 72 queries .

© 2020-2025 乐筑天下

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