明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6928|回复: 20

[求助]动态引线的箭头方向怎么判断?(已解决)

    [复制链接]
发表于 2009-2-25 22:54:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2009-2-27 22:37:14 编辑

 想弄一个引线会跟着鼠标移动走的,用来做局部放大用,但当鼠标移到对象的另一边时,引线就反了,请问怎样可以把左边那个改成像右边那个一样?有劳诸位大侠,谢谢!!

还有,鼠标的十字线能不能暂时隐藏掉?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
    共1人打赏
发表于 2009-2-27 21:44:00 | 显示全部楼层
增加一句就可以了.
(vla-put-VerticalTextPosition Leader 1)
  1. (defun c:test (/ ent mspace i m wenzi a b c d aa bb cc dd ee ff gg leader)
  2. (setq ent (car (entsel)))  ;;选择对象
  3. (setq mspace (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
  4. (setq i T)
  5. (while i
  6.   (setq a (grread T 4 0) b (car a) c (cadr a))        ;;b=5移动,b=3左键,c=0右键,;;c=13回车,c=32空格
  7.   (cond ((= b 5)                                      ;当鼠标移动时            
  8.         (setq a (trans (cadr a) 1 0))                 ;;鼠标移动点
  9.         (setq d (vlax-curve-getclosestpointto ent a)) ;;a到对象ent的最近点
  10.         (setq aa (car a) bb (cadr a) cc (caddr a))    ;;提取 a 的x,y,z
  11.         (setq dd (car d) ee (cadr d) ff (caddr d))    ;;提取 d 的x,y,z
  12.         ;;★创建引线★
  13.         (setq gg (vlax-make-safearray vlax-vbDouble '(0 . 5)))
  14.         (vlax-safearray-fill gg (list dd ee ff aa (- (cadr a) 2) cc))  ;;填满gg
  15.      (if (not Leader)  ;;如果leader为空
  16.          (progn
  17.          (setq m (vla-AddMText mspace (vlax-3d-point (list aa (- (cadr a) 1.5))) 0 "A")) ;;创建文字A
  18.          (setq wenzi (vlax-make-safearray vlax-vbString '(1 . 9)))
  19.          (vlax-safearray-fill wenzi '("TopLeft" "TopCenter" "TopRight" "MiddleLeft"
  20.          "MiddleCenter" "MiddleRight" "BottomLeft" "BottomCenter" "BottomRight")) ;;填满wenzi
  21.          (setq Leader (vla-AddLeader mspace gg m acLineWithArrow))  ;;创建有箭头的引线
  22.          ) ;;end_progn
  23.        );;end_if
  24.     (if (<= aa dd) ;;如果鼠标移动点的x坐标值小于等于最近点的X坐标值
  25.         (vla-put-AttachmentPoint m 9)     ;;更改文字的贴附点为9(右下角)
  26.         (vla-put-AttachmentPoint m 7)     ;;更改文字的贴附点为7(左下角)
  27.     );;end_if
  28. (vla-put-InsertionPoint m (vlax-3d-point (list aa (- (cadr a) 1.5))))  ;;更新文字插入点
  29. (vla-put-Coordinates Leader gg)   ;;更新引线插入点
  30. (vla-put-VerticalTextPosition Leader 1)
  31. ) ;;end_cond第一个括号
  32. ((= b 3) (setq i nil)) ;;左键结束while(cond第二个括号)
  33. ) ;;end_cond
  34. ) ;;end_while
  35. (princ)
  36. )
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2009-3-2 19:52:00 | 显示全部楼层
本帖最后由 作者 于 2009-3-2 19:55:40 编辑

userzhl发表于2009-3-1 21:45:00可不可以改成这样?

(defun C:as ()         ;;水平--垂直标注互换                                              
(Setvar "CMDECHO" 0)
(if (and (= (getvar "dimtoh") 0) (= (getvar "dimtih") 0))
    (progn
    (Setvar "dimtoh" 1)
     (Setvar "dimtih" 1)
  (prompt "\n水平标注")
 )
 (progn
    (Setvar "dimtoh" 0)
     (Setvar "dimtih" 0)
  (prompt  "\n与尺寸线对齐")
 )
 )
(princ)
)
回复 支持 1 反对 0

使用道具 举报

发表于 2018-4-7 22:58:15 | 显示全部楼层
9年前的讨论就这么高的质量,佩服
 楼主| 发表于 2009-2-27 22:47:00 | 显示全部楼层
谢谢xshrimp!!原来就差一句,我弄了很久都没弄出来,函数认识太少了。
发表于 2009-3-1 21:45:00 | 显示全部楼层
本帖最后由 作者 于 2009-3-2 8:26:34 编辑

可不可以改成这样?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2009-3-2 14:39:00 | 显示全部楼层
可以把它改成文字由列表选择或者键盘输入吗?
发表于 2009-3-2 22:54:00 | 显示全部楼层
hstea发表于2009-3-2 14:39:00可以把它改成文字由列表选择或者键盘输入吗?

加上這個就可以键盘输入啦

(setq ssde (getstring "请输入文字: "))

发表于 2009-3-3 01:00:00 | 显示全部楼层
如我第四楼上所说的,如何可以自动标注圆弧半径呢?
发表于 2009-3-17 00:22:00 | 显示全部楼层
这个程序好像在图纸空间不行哦,而且,想问下,如何定义文字的大小呢?
发表于 2009-3-17 09:07:00 | 显示全部楼层
userzhl发表于2009-3-17 0:22:00这个程序好像在图纸空间不行哦,而且,想问下,如何定义文字的大小呢?
(setq mspace (vla-get-modelspace    (vla-get-activedocument    (vlax-get-acad-object))))
改成:
  1. ;;By carrot1983
  2. (defun CAI-SPACE (/ SPACE ACADDCC)
  3.   (setq ACADDCC (vla-get-activedocument
  4.     (vlax-get-acad-object)
  5.   )
  6.   )
  7.   (if (and
  8. (= (getvar "tilemode") 0)
  9. (= (getvar "cvport") 1)
  10.       )
  11.     (setq SPACE (vla-get-paperspace ACADDCC))
  12.     (setq SPACE (vla-get-modelspace ACADDCC))
  13.   )
  14.   SPACE
  15. )

(CAI-SPACE)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-22 18:59 , Processed in 0.201622 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表