乐筑天下

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

[编程交流] lisp设置dimdec并选择

[复制链接]

12

主题

55

帖子

43

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 15:24:58 | 显示全部楼层 |阅读模式
大家好,
 
我试图制作一个lisp文件,该文件将发出命令“0”到“9”,将dimdec变量更改为相应的数字,然后要求我选择一个维度(就像我键入“dim”然后键入“up”)并相应地更新精度。
 
我从这个开始,有人帮我为dimscale的数组,但我不知道如何编辑它,因为我希望数字是命令本身。。。
 
  1. (defun c:setdimdec(/ i)<p>  (setq i 1)</p><p>  (repeat 9</p><p>    (eval(read(strcat "(defun c:d" (itoa i)</p><p>        "()(setvar "DIMSCALE" " (itoa i)</p><p>        ")(princ))")))</p><p>    (setq i(1+ i))</p><p>    ); end repeat</p><p>  (princ)</p><p>  ); end of test</p><p>(c:test)[\code]</p>
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:36:26 | 显示全部楼层
试试这个:
 
  1. (defun c:dd (/ *error* dim ss ssl)
  2.    (defun *error* (msg)
  3.    (setvar "cmdecho" 1)
  4.    (if (= msg "")
  5.        (princ "\nFunction Complete.")
  6.        (princ "\nError or Esc Pressed...")
  7.    ) ;_  end if
  8.    (princ)
  9.    ) ;_  end defun
  10.    (setvar "cmdecho" 0)
  11.    (if
  12.    (>= (setq dim (getint "\nSpecify Number of Decimal Places: ")) 0)
  13.       (progn
  14.           (setvar "DIMDEC" dim)
  15.           (setq ss (ssget))
  16.           (if (/= (setq ssl (sslength ss)) 0)
  17.           (command "-dimstyle" "a" ss "")
  18.           (alert "No Dimensions Selected.")
  19.           ) ;_  end if
  20.       ) ;_  end progn
  21.       (alert "Number of Decimal Places must be Positive.")
  22.    ) ;_  end if
  23.    (*error* "")
  24.    (princ (strcat "\n" (itoa ssl) " Dimensions Updated."))
  25.    (princ)
  26. ) ;_  end defun
回复

使用道具 举报

12

主题

55

帖子

43

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 15:52:42 | 显示全部楼层
谢谢你,李!这很有效。有没有办法将命令“0”指定为“dd”,然后将“0”、“1”指定为“1”等等?这样我只需要少输入一个。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:59:05 | 显示全部楼层
“0”的示例:
 
  1. (defun c:[color=Red][b]0[/b][/color] (/ *error* ss ssl)
  2.    (defun *error* (msg)
  3.    (setvar "cmdecho" 1)
  4.    (if (= msg "")
  5.        (princ "\nFunction Complete.")
  6.        (princ "\nError or Esc Pressed...")
  7.    ) ;_  end if
  8.    (princ)
  9.    ) ;_  end defun
  10.    (setvar "cmdecho" 0)
  11.    (setvar "DIMDEC" [b][color=Red]0[/color][/b])
  12.    (setq ss (ssget))
  13.    (if    (/= (setq ssl (sslength ss)) 0)
  14.    (command "-dimstyle" "a" ss "")
  15.    (alert "No Dimensions Selected.")
  16.    ) ;_  end if
  17.    (*error* "")
  18.    (princ (strcat "\n" (itoa ssl) " Dimensions Updated."))
  19.    (princ)
  20. ) ;_  end defun

 
将突出显示的零更改为不同的数字以满足您的需要。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:05:13 | 显示全部楼层
或者,这可能是为了一次更新图形中的所有尺寸。
 
  1. (defun c:0 (/ *error* ss ssl)
  2.    (defun *error* (msg)
  3.    (setvar "cmdecho" 1)
  4.    (if (= msg "")
  5.        (princ "\nFunction Complete.")
  6.        (princ "\nError or Esc Pressed...")
  7.    ) ;_  end if
  8.    (princ)
  9.    ) ;_  end defun
  10.    (setvar "cmdecho" 0)
  11.    (setvar "DIMDEC" 0)
  12.    (setq ss (ssget "X" (list (cons 0 "DIMENSION"))))
  13.    (if    (/= (setq ssl (sslength ss)) 0)
  14.    (command "-dimstyle" "a" ss "")
  15.    (alert "No Dimensions Exist.")
  16.    ) ;_  end if
  17.    (*error* "")
  18.    (princ (strcat "\n" (itoa ssl) " Dimensions Updated."))
  19.    (princ)
  20. ) ;_  end defun
回复

使用道具 举报

12

主题

55

帖子

43

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 16:20:32 | 显示全部楼层
谢谢李·麦克。你太牛了祝您有个美好的一天。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 16:28:47 | 显示全部楼层
 
为诺尔干杯,(也祝你新年快乐)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 19:28 , Processed in 0.369506 second(s), 66 queries .

© 2020-2025 乐筑天下

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