cq4920 发表于 2020-3-23 00:02:24

标注文字垂直位置设定,

本帖最后由 cq4920 于 2020-3-25 01:18 编辑

;;========================================
;; 标注文字垂直位置
;;========================================
(defun c:tt5 ( / ss n Nb*error*)
(defun *error* (s)(princ (strcat "\n程序出错: " s)))
(setvar "CMDECHO" 0)
(setq ss (ssget '((0 . "DIMENSION"))))
      (initget "0 1 2 3 4")
      (if (not (setq Nb
               (getkword"\n设定标注位置<0>居中<1>上方<2>外部<3>JIS<4>下方]"))
          )
      (setq Nb "2"))
(setq n 0)
      (repeat (sslength ss)
          (vla-put-VerticalTextPosition (vlax-ename->vla-object (ssname ss n)) Nb)
          (setq n (1+ n))
      )      
(setvar "CMDECHO" 1)
(princ)
)

e2002 发表于 2020-3-24 10:06:14

本帖最后由 e2002 于 2020-3-24 10:28 编辑

各位AutoCAD开发者:规范的提示文字串,能带给用户与内置标准命令一致的操作体验。

而且由于规范,所以这些提示字符串就能直接使用程序,函数来处理,按要求由程序流程控制,动态创建,而不是写死在语句里。

start4444 发表于 2020-3-23 22:01:10

(repeat (sslength ss)循环写错了

cq4920 发表于 2020-3-23 22:14:06

start4444 发表于 2020-3-23 22:01
(repeat (sslength ss)循环写错了

原来是对 repeat 用法完全不了解!真是一语点醒梦中人!现在就好用多了!谢谢!!

e2002 发表于 2020-3-24 10:03:36

(getkword"\n设定标注位置<0>居中<1>上方<2>外部<3>JIS<4>下方]"))

请修改为:

(getkword"\n设定标注位置 [居中(0)/上方(1)/外部(2)/JIS(3)/下方(4)]: "))

然后对比一下这两种写法,在运行中,鼠标右键菜单的表现差异。

cq4920 发表于 2020-3-24 10:08:06

e2002 发表于 2020-3-24 10:03
(getkword"\n设定标注位置居中上方外部JIS下方]"))

请修改为:


漂亮漂亮!
页: [1]
查看完整版本: 标注文字垂直位置设定,