乐筑天下

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

[编程交流] 需要帮助仅选择证书

[复制链接]

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:00:53 | 显示全部楼层 |阅读模式
我猜不出来。下面创建的lisp可以很好地选择所有已识别的多DText属性块,从而全局更改其宽度因子。
 
然而,我需要它做的是只选择超过11.30mm的块,并将其更改为可以输入但有人可以输入的因子。
 
  1. (defun
  2.   C:IDEC-FERRULE_SHORT (/ CE CN DT EN NA NE NH NS NT NW OLDERR OP SL SN SS)
  3. (setq
  4.    OLDERR *ERROR*
  5.    *ERROR* ERR
  6.    CE (getvar "CMDECHO")
  7.    SS (ssget '((0 . "INSERT")))
  8.    CN 0
  9. ) ;_ end of setq
  10. ;;setq
  11.     (setq NW (getreal "\nNew Text Width for Attribute: "))
  12.     (if SS
  13.       (repeat (setq SL (sslength SS))
  14.         (setq
  15.           SN (ssname SS CN)
  16.           NE (entnext SN)
  17.         ) ;_ end of setq
  18.         ;;setq
  19.         (while (and
  20.                  NE
  21.                  (/= (setq EN (cdr (assoc 0 (setq DT (entget NE)))))
  22.                      "SEQEND"
  23.                  ) ;_ end of /=
  24.                ) ;_ end of and
  25.           (if (= EN "ATTRIB")
  26.             (progn
  27.               (setq DT (subst (cons 41 NW) (assoc 41 DT) DT))
  28.               (entmod DT)
  29.               (entupd SN)
  30.             ) ;_ end of progn
  31.             ;;progn
  32.           ) ;_ end of if
  33.           ;;if
  34.           (setq NE (entnext NE))
  35.         ) ;_ end of while
  36.         ;;while
  37.         (setq CN (1+ CN))
  38.         (repeat 25 (princ "\010"))
  39.         (princ (strcat "Total " (itoa CN) " done of " (itoa SL)))
  40.       ) ;_ end of repeat
  41.       ;;repeat
  42.       (princ "\nNo input")
  43.     ) ;_ end of if
  44.     ;;if
  45.    )
  46.    ;;W
  47. ) ;_ end of cond
  48. ;;cond
  49. (setvar "CMDECHO" CE)
  50. (setq *ERROR* OLDERR)
  51. (princ)
  52. )

 
 
希望有人能帮我解决这个问题,因为我没有线索。
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 17:11:34 | 显示全部楼层
请阅读代码发布指南,并编辑代码以包含在代码标签中。[NOPARSE]
  1. Your Code Here[/NOPARSE]
=
  1. Your Code Here

 
 
请在适当的论坛上发布您的问题,我将您的帖子转移到AutoLISP、Visual LISP和DCL论坛。
回复

使用道具 举报

18

主题

1529

帖子

973

银币

中流砥柱

Rank: 25

铜币
649
发表于 2022-7-5 17:20:45 | 显示全部楼层
我对“多DText属性块”有点困惑。你是说多行属性吗?
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:29:22 | 显示全部楼层
也许 吧:
  1. [b][color=BLACK]([/color][/b]defun C:test [b][color=FUCHSIA]([/color][/b] / *error* oldcmd SS nw limt i e enx next pcnt tcnt [b][color=FUCHSIA])[/color][/b]
  2. [b][color=FUCHSIA]([/color][/b]defun *error* [b][color=NAVY]([/color][/b]m[b][color=NAVY])[/color][/b]
  3.         [b][color=NAVY]([/color][/b]and oldcmd [b][color=MAROON]([/color][/b]setvar 'cmdecho oldcmd[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  4.         [b][color=NAVY]([/color][/b]if m [b][color=MAROON]([/color][/b]print m[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]princ[b][color=NAVY])[/color][/b]
  5. [b][color=FUCHSIA])[/color][/b][color=#8b4513]; defun *error*[/color]
  6. [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq oldcmd [b][color=MAROON]([/color][/b]getvar 'cmdecho[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]setvar 'cmdecho 0[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  7. [b][color=FUCHSIA]([/color][/b]if
  8.         [b][color=NAVY]([/color][/b]and
  9.                 [b][color=MAROON]([/color][/b]princ [color=#2f4f4f]"\nSelect blocks to change their attrib width: "[/color][b][color=MAROON])[/color][/b]
  10.                 [b][color=MAROON]([/color][/b]setq SS [b][color=GREEN]([/color][/b]ssget [color=#2f4f4f]"_:L"[/color] [b][color=BLUE]([/color][/b]list [b][color=RED]([/color][/b]cons 0 [color=#2f4f4f]"INSERT"[/color][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]cons 66 1[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  11.                 [b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]initget [b][color=BLUE]([/color][/b]+ 2 4[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  12.                 [b][color=MAROON]([/color][/b]or [b][color=GREEN]([/color][/b]setq nw [b][color=BLUE]([/color][/b]getreal [color=#2f4f4f]"\nNew Text Width for Attribute < 1.0 >: "[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq nw 1[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  13.                 [b][color=MAROON]([/color][/b]not [b][color=GREEN]([/color][/b]initget [b][color=BLUE]([/color][/b]+ 2 4[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  14.                 [b][color=MAROON]([/color][/b]or [b][color=GREEN]([/color][/b]setq limt [b][color=BLUE]([/color][/b]getreal [color=#2f4f4f]"\nSpecify the upper limit units < 11.30 >:"[/color] [b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq limt 11.3[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  15.         [b][color=NAVY])[/color][/b][color=#8b4513]; and[/color]
  16.         [b][color=NAVY]([/color][/b]progn
  17.                 [b][color=MAROON]([/color][/b]repeat [b][color=GREEN]([/color][/b]setq i [b][color=BLUE]([/color][/b]sslength SS[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  18.                         [b][color=GREEN]([/color][/b]setq e [b][color=BLUE]([/color][/b]ssname SS [b][color=RED]([/color][/b]setq i [b][color=PURPLE]([/color][/b]1- i[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  19.                         [b][color=GREEN]([/color][/b]setq enx [b][color=BLUE]([/color][/b]entget e[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  20.                         [b][color=GREEN]([/color][/b]setq next [b][color=BLUE]([/color][/b]entnext e[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  21.                         [b][color=GREEN]([/color][/b]while [b][color=BLUE]([/color][/b]and next [b][color=RED]([/color][/b]/= [b][color=PURPLE]([/color][/b]cdr [b][color=TEAL]([/color][/b]assoc 0 [b][color=OLIVE]([/color][/b]setq nextnx [b][color=GRAY]([/color][/b]entget next[b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [color=#2f4f4f]"SEQEND"[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  22.                                 [b][color=BLUE]([/color][/b]and
  23.                                         [b][color=RED]([/color][/b]= [color=#2f4f4f]"ATTRIB"[/color] [b][color=PURPLE]([/color][/b]cdr [b][color=TEAL]([/color][/b]assoc 0 nextnx[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  24.                                         [b][color=RED]([/color][/b]>= [b][color=PURPLE]([/color][/b]cdr [b][color=TEAL]([/color][/b]assoc 41 nextnx[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] limt[b][color=RED])[/color][/b]
  25.                                         [b][color=RED]([/color][/b]entupd [b][color=PURPLE]([/color][/b]cdr [b][color=TEAL]([/color][/b]assoc -1 [b][color=OLIVE]([/color][/b]entmod [b][color=GRAY]([/color][/b]subst [b][color=AQUA]([/color][/b]cons 41 nw[b][color=AQUA])[/color][/b] [b][color=AQUA]([/color][/b]assoc 41 nextnx[b][color=AQUA])[/color][/b] nextnx[b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  26.                                         [b][color=RED]([/color][/b]or [b][color=PURPLE]([/color][/b]and pcnt [b][color=TEAL]([/color][/b]setq pcnt [b][color=OLIVE]([/color][/b]1+ pcnt[b][color=OLIVE])[/color][/b][b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b] [b][color=PURPLE]([/color][/b]setq pcnt 0[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  27.                                 [b][color=BLUE])[/color][/b][color=#8b4513]; and[/color]
  28.                                 [b][color=BLUE]([/color][/b]setq next [b][color=RED]([/color][/b]entnext next[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  29.                                 [b][color=BLUE]([/color][/b]or [b][color=RED]([/color][/b]and tcnt [b][color=PURPLE]([/color][/b]setq tcnt [b][color=TEAL]([/color][/b]1+ tcnt[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]setq tcnt 0[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  30.                         [b][color=GREEN])[/color][/b][color=#8b4513]; while[/color]
  31.                 [b][color=MAROON])[/color][/b][color=#8b4513]; repeat[/color]
  32.                 [b][color=MAROON]([/color][/b]princ [b][color=GREEN]([/color][/b]strcat [color=#2f4f4f]"\nModified "[/color] [b][color=BLUE]([/color][/b]if pcnt [b][color=RED]([/color][/b]itoa pcnt[b][color=RED])[/color][/b] [color=#2f4f4f]"0"[/color][b][color=BLUE])[/color][/b] [color=#2f4f4f]" attributes of "[/color] [b][color=BLUE]([/color][/b]itoa tcnt[b][color=BLUE])[/color][/b] [color=#2f4f4f]" total, inside of "[/color] [b][color=BLUE]([/color][/b]itoa [b][color=RED]([/color][/b]1+ i[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [color=#2f4f4f]" blocks."[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  33.         [b][color=NAVY])[/color][/b][color=#8b4513]; progn        [/color]
  34.         [b][color=NAVY]([/color][/b]cond
  35.                 [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]not SS[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"\nNothing selected."[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  36.                 [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]not nw[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"\nAttribute width not specified."[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  37.                 [b][color=MAROON]([/color][/b][b][color=GREEN]([/color][/b]not limt[b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]princ [color=#2f4f4f]"\nUpper limit not specified."[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  38.         [b][color=NAVY])[/color][/b][color=#8b4513]; cond[/color]
  39. [b][color=FUCHSIA])[/color][/b][color=#8b4513]; if[/color]
  40. [b][color=FUCHSIA]([/color][/b]and oldcmd [b][color=NAVY]([/color][/b]setvar 'cmdecho oldcmd[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  41. [b][color=FUCHSIA]([/color][/b]princ[b][color=FUCHSIA])[/color][/b]
  42. [b][color=BLACK])[/color][/b][color=#8b4513]; defun        [/color]
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:36:40 | 显示全部楼层
@Roy_043使用的块是带有可视性的单线动态块。
 
 
我知道,如果我用多行文字创建宽度,那么减少宽度会更容易,但这样一来,输入的方便性也会被消除。块内的文本宽度为标准0.8,最好减少到0.65,但仅限于超出框限制的属性。
 
 
@Grrr似乎什么也没做。
 
 
附件。dwg文件显示了我们使用的一些块以及我希望发生的事情。
 
 
我试图整合另一个lisp的一部分(用于不同的原因),以识别图形中的某些块。
 
 
但遗憾的是,这并不奏效:
 
 
  1.   (Defun c:IDEC-FERRULE ( / ss i e v f)
  2.       (if (setq ss (ssget "_X" '((0 . "INSERT")(66 . 1)
  3.      (2 . "TAG_TOP-LEFT,TAG_DOWN-RIGHT,TAG_BOT_FUSE,TAG_TOP_FUSE,TAG_BOTSIDE_FUSE,TAG_TOPSIDE_FUSE `*U*"))))
  4. (repeat (setq i (sslength ss))
  5.    (setq e (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
  6.   (if (and
  7.    (member (strcase (vla-get-EffectiveName e)) '("TAG_TOP-LEFT" "TAG_DOWN-RIGHT" "TAG_BOT_FUSE" "TAG_TOP_FUSE" "TAG_BOTSIDE_FUSE" "TAG_TOPSIDE_FUSE"))
  8.    (vlax-write-enabled-p e)
  9.          )
  10.    (progn
  11.        (setq v (mapcar '(lambda (x)
  12.       (if  (eq (vla-get-textstring x) "") 0 1))
  13.          (vlax-invoke e 'Getattributes)))
  14.       
  15.       (cond
  16.        ( (Setq f (cadr
  17.           (assoc v  '(((1 0 0)  "Off"  )
  18.             ((1 1 0)  "DEST_1_ONLY" )
  19.         ((1 1 1)  "DEST_2_ON" ))))
  20.      ;;   Other Visibility States and conditions   ;:
  21.             )
  22.        (vla-put-value (vl-some '(lambda (z)(if (vla-get-propertyname z) "Visibility1") z)
  23.                (vlax-invoke e 'GetDynamicBlockProperties))
  24.        f      )
  25.              )
  26.       
  27.        ( (equal v '(0 0 0)) (vla-delete e)   )
  28.       
  29.      ;(    or Other condtions here    );
  30.      ;(    or Other condtions here    );
  31.       )
  32.      )
  33.    )
  34.    )
  35. )
  36.   (princ)
  37. )

图纸2.dwg
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:40:39 | 显示全部楼层
刚刚测试了我的建议,在左边的一组块上,它似乎有效,但我必须为新的宽度和上限单位输入0.6的值。
误解在于代码期望的是因子值,而不是实际长度。
回复

使用道具 举报

18

主题

1529

帖子

973

银币

中流砥柱

Rank: 25

铜币
649
发表于 2022-7-5 17:50:43 | 显示全部楼层
@自动曝光
使用(textbox)函数获取每个属性的当前宽度,并将其与所需/最大宽度进行比较。然后根据需要更改gc 41值(相对X比例因子)。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:55:42 | 显示全部楼层
这篇文章可能会提供一些线索。
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:05:23 | 显示全部楼层
@李·麦克
隐马尔可夫模型。。谢谢,这很有趣。
另外,我刚刚看过您创建的程序,想知道是否有可能反转boundingboxreactorv1-0 lisp。不是根据圆圈的位置或比例增加方框大小,而是根据方框减小圆圈大小?
 
 
这对文本有效吗?文本根据其周围的框大小减小宽度。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 08:13 , Processed in 1.072176 second(s), 70 queries .

© 2020-2025 乐筑天下

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