明币不多,意思下,2币求一小程序,前辈请进
要求程序可以实现自动将标注等分,比如预选一个线性标注、对齐标注或弧长标注(假设为1000),命令后,输入要等分的量(假设为4),然后回车或空格,标注自动变为250*4=1000,如图: 本帖最后由 Andyhon 于 2011-6-3 11:47 编辑;;; for test only
(vl-load-com)
(defun c:test ()
(cond
((null (setq ss (ssget '((0 . "DIMENSION"))))))
(T
(setVar 'DimZin 8)
(setVar 'Luprec 1) ; 此处设定小数精度
(setq ee (ssname ss 0)
obj (vlax-ename->vla-object ee)
txt (vla-get-measurement obj)
div (getint "\n输入要等分的量: ")
dtxt (rtos (/ txt div))
)
(vla-put-TextOverRide
obj
(strcat (itoa div) "*" dtxt "=" (rtos txt))
)
))
)
先写个雏型,请自行调试再回馈需修订之处
...线性标注、对齐标注或弧长标注(假设为1000)...
请 Upload *.dwg 包含以上示例
(假设为1000 / 937 ).....
(3 * 333 ~ 1000 ~)????
若不整除时咋办?
本帖最后由 cjjh8301 于 2011-6-3 09:08 编辑
上面的图就是一个正常标注一个标了文字内容
4 舍 5 入可以不?
基本可以实现,但是等分后 文字内容少了“=" 与结果,只是a*n,最好是a*n=m,
还有逢0.5就保留不要4 舍 5 入 4#己修订,请再测 ...... 不行了1000的标注执行命令后 标注变成 4*=250 2007中测试结果同上 本帖最后由 仲文玉 于 2011-6-3 11:02 编辑
(strcat (itoa div) "*=" dtxt)
(strcat (itoa div) "*" dtxt "=" 原txt的值) Sorry! 己订正
页:
[1]
2