raimo 发表于 2011-6-3 23:55:08

[已解决]请高手帮忙做一个快速切换箭头圆点的工具

本帖最后由 raimo 于 2011-6-7 22:32 编辑

画图的时候经常在这两种箭头样式中切换,每次点来点来觉得太麻烦了..
请教这里的高手们,能不能有一个比较简单的lsp工具可以快速切换这两种箭头样式
(注:这是用的qleader引线标注)

如果在切换的时候同时附加一个小功能就更好了..圆点的箭头大小是1 ,切换成箭头的时候自动改大小为2,反之亦然


啵浪鼓 发表于 2011-6-4 00:21:33

本帖最后由 啵浪鼓 于 2011-6-4 00:22 编辑

标注箭头系统变量 DIMBLK
引线箭头系统变量 DIMLDRBLK
以下设置自行加在你的程序内,你行的!

将标注箭头改为小圆点
(setvar "DIMBLK" "DOTSMALL")
将标注箭头还原默认
(setvar "DIMBLK" ".")

将引线箭头改为小圆点
(setvar "DIMLDRBLK" "DOTSMALL")
将引线箭头还原默认
(setvar "DIMLDRBLK" ".")

raimo 发表于 2011-6-4 05:57:20

感谢拨浪鼓的回复...但我是没啥lsp基础的..小地方能看懂,程序却不会写..

能否有个比较完整的,多谢啦..

if 发表于 2011-6-4 09:10:57

(defun c:aaa ()
(if (ssget "x" '((0 . "LEADER")))
      (vlax-for obj
      (vla-get-ActiveSelectionSet
          (vla-get-ActiveDocument (vlax-get-acad-object))
      )
      (if (zerop (vla-get-ArrowheadType obj))
          (vla-put-ArrowheadType obj 3)
          (vla-put-ArrowheadType obj 0)
      )
)))

daidong013 发表于 2011-6-4 14:14:43

学习了!~~好东西!~~

raimo 发表于 2011-6-4 23:28:05

if 发表于 2011-6-4 09:10 static/image/common/back.gif
(defun c:aaa ()
(if (ssget "x" '((0 . "LEADER")))
      (vlax-for obj


感谢你的热心帮助,不过这个是一下子全部转换的..能不能只变化选中的引线呢

caoyin 发表于 2011-6-5 04:22:20

去掉"x"--->(ssget '((0 . "LEADER")))

raimo 发表于 2011-6-5 06:55:39

caoyin 发表于 2011-6-5 04:22 static/image/common/back.gif
去掉"x"--->(ssget '((0 . "LEADER")))

这下好用了..非常感谢caoyin版主的帮忙!!!


另外能改箭头的大小吗? 我想在圆点变成箭头的时候强制设置箭头大小为2

caoyin 发表于 2011-6-5 16:16:25

(defun c:aaa ()
(if (ssget '((0 . "LEADER")))
      (vlax-for obj
      (vla-get-ActiveSelectionSet
          (vla-get-ActiveDocument (vlax-get-acad-object))
      )
      (vla-put-ArrowheadSize obj 2)
      (if (zerop (vla-get-ArrowheadType obj))
          (vla-put-ArrowheadType obj 3)
          (vla-put-ArrowheadType obj 0)
      )
)))

raimo 发表于 2011-6-5 23:45:13

本帖最后由 raimo 于 2011-6-5 23:46 编辑

caoyin 发表于 2011-6-5 16:16 static/image/common/back.gif
(defun c:aaa ()
(if (ssget '((0 . "LEADER")))
      (vlax-for obj

多谢C版,这就是我想要的了..虽然还差了一点点,到这个程度我就能改了.;快速切换引线箭头样式..
(defun c:ee()
(if (ssget)
      (vlax-for obj
      (vla-get-ActiveSelectionSet
          (vla-get-ActiveDocument (vlax-get-acad-object))
      )      
      (if (zerop (vla-get-ArrowheadType obj))
          ((vla-put-ArrowheadType obj 3) (vla-put-ArrowheadSize obj 1))
          ((vla-put-ArrowheadType obj 0) (vla-put-ArrowheadSize obj 2))
      )
)))
页: [1]
查看完整版本: [已解决]请高手帮忙做一个快速切换箭头圆点的工具