明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1810|回复: 12

[讨论] LSP怎么改Leader(引线)里的箭头样式和大小

[复制链接]
发表于 2018-11-10 16:44:08 | 显示全部楼层 |阅读模式
leader绘制的引线,里面的箭头怎么用LSP改成“点”,还有大小

本帖子中包含更多资源

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

x
发表于 2018-11-16 08:37:23 | 显示全部楼层
你自己先试一下再说,我一直这样画图的,我设置的是QQ画小点引线,QA画箭头引线。
我在一个图档里所有的标注样式只有一个,只是设置的dimscale 标注比例不同。
  1. 你自己先试一下再说,我一直这样画图的,我设置的是QQ画小点引线,QA画箭头引线。
  2. 我在一个图档里所有的标注样式只有一个,只是设置的dimscale 标注比例不同。
  3. (defun c:Qq ( / mirrtxt pt1 pt2 pt3 pt0)
  4. (setq pt1 (getpoint  "\n指定个引线第一点:"))
  5. (setq pt2 (getpoint pt1 "\n指定个引线第二点:"))
  6. ;;(undobe)
  7. (SETVAR "CMDECHO" 0)
  8. (setvar 'dimldrblk "小点")
  9. (setq *error* q_err )
  10. (setq qscale (getvar "dimscale"))
  11. (setvar "attreq" 0)
  12. (setq pt3(mapcar '/ (mapcar '+ pt1 pt2) '(2 2 2)))
  13. (setq pt0 ( polar pt3 (angtof "90") (* 3.5 (getvar 'dimscale))) )
  14. (command "_.leader" "non" pt1 "non" pt2 "" "" "n")
  15. (command "chprop" (entlast) ""  "LA" "02标注" "")
  16. (if (= (fix(cadr pt1))(fix(cadr pt2)))
  17. (entmake (list '(0 . "TEXT") (cons 1 "默认文字") (cons 7 (getvar 'textstyle)) '(8 . "06文字层") (cons 10 pt1)(cons 11 pt0)
  18.                (cons 40 (* (getvar 'dimscale) 5))(cons 41 0.8) (cons 71 0)(cons 72 4)))
  19. (progn(command "_.line" pt2 (getpoint pt2 "\n指定个引线第三点:") "")(command "chprop" (entlast) ""  "LA" "02标注" "") )
  20. )
  21. (SETVAR "CMDECHO" 1)
  22. ;;(undoe)
  23. (prin1)
  24. )

  25. (defun c:Qa ( / mirrtxt pt1 pt2 pt3 pt0)
  26. (setq pt1 (getpoint  "\n指定个引线第一点:"))
  27. (setq pt2 (getpoint pt1 "\n指定个引线第二点:"))
  28. ;;(undobe)
  29. (SETVAR "CMDECHO" 0)
  30. (setvar 'dimldrblk ".")
  31. (setq *error* q_err )
  32. (setq qscale (getvar "dimscale"))
  33. (setvar "attreq" 0)
  34. (setq pt3(mapcar '/ (mapcar '+ pt1 pt2) '(2 2 2)))
  35. (setq pt0 ( polar pt3 (angtof "90") (* 3.5 (getvar 'dimscale))) )
  36. (command "_.leader" "non" pt1 "non" pt2 "" "" "n")
  37. (command "chprop" (entlast) ""  "LA" "02标注" "")
  38. (if (= (fix(cadr pt1))(fix(cadr pt2)))
  39. (entmake (list '(0 . "TEXT") (cons 1 "默认文字") (cons 7 (getvar 'textstyle)) '(8 . "06文字层") (cons 10 pt1)(cons 11 pt0)
  40.                (cons 40 (* (getvar 'dimscale) 5))(cons 41 0.8) (cons 71 0)(cons 72 4)))
  41. (progn(command "_.line" pt2 (getpoint pt2 "\n指定个引线第三点:") "")(command "chprop" (entlast) ""  "LA" "02标注" "") )
  42. )
  43. (SETVAR "CMDECHO" 1)
  44. ;;(undoe)
  45. (prin1)
  46. )


发表于 2018-11-16 08:41:50 | 显示全部楼层
你自己尝试过没有?同一个标注样式名,可以标注出不同的样式!

  1. (defun c:qq ( / mirrtxt pt1 pt2 pt3 pt0)
  2. (setq pt1 (getpoint  "\n指定个引线第一点:"))
  3. (setq pt2 (getpoint pt1 "\n指定个引线第二点:"))
  4. ;;(undobe)
  5. (SETVAR "CMDECHO" 0)
  6. (setvar 'dimldrblk "小点")
  7. (setq *error* q_err )
  8. (setq qscale (getvar "dimscale"))
  9. (setvar "attreq" 0)
  10. (setq pt3(mapcar '/ (mapcar '+ pt1 pt2) '(2 2 2)))
  11. (setq pt0 ( polar pt3 (angtof "90") (* 3.5 (getvar 'dimscale))) )
  12. (command "_.leader" "non" pt1 "non" pt2 "" "" "n")
  13. (command "chprop" (entlast) ""  "LA" "02标注" "")
  14. (if (= (fix(cadr pt1))(fix(cadr pt2)))
  15. (entmake (list '(0 . "TEXT") (cons 1 "默认文字") (cons 7 (getvar 'textstyle)) '(8 . "06文字层") (cons 10 pt1)(cons 11 pt0)
  16.                (cons 40 (* (getvar 'dimscale) 5))(cons 41 0.8) (cons 71 0)(cons 72 4)))
  17. (progn(command "_.line" pt2 (getpoint pt2 "\n指定个引线第三点:") "")(command "chprop" (entlast) ""  "LA" "02标注" "") )
  18. )

  19. (SETVAR "CMDECHO" 1)
  20. ;;(undoe)
  21. (prin1)
  22. )

  23. (defun c:qa ( / mirrtxt pt1 pt2 pt3 pt0)
  24. (setq pt1 (getpoint  "\n指定个引线第一点:"))
  25. (setq pt2 (getpoint pt1 "\n指定个引线第二点:"))
  26. ;;(undobe)
  27. (SETVAR "CMDECHO" 0)
  28. (setvar 'dimldrblk ".")
  29. (setq *error* q_err )
  30. (setq qscale (getvar "dimscale"))
  31. (setvar "attreq" 0)
  32. (setq pt3(mapcar '/ (mapcar '+ pt1 pt2) '(2 2 2)))
  33. (setq pt0 ( polar pt3 (angtof "90") (* 3.5 (getvar 'dimscale))) )
  34. (command "_.leader" "non" pt1 "non" pt2 "" "" "n")
  35. (command "chprop" (entlast) ""  "LA" "02标注" "")
  36. (if (= (fix(cadr pt1))(fix(cadr pt2)))
  37. (entmake (list '(0 . "TEXT") (cons 1 "默认文字") (cons 7 (getvar 'textstyle)) '(8 . "06文字层") (cons 10 pt1)(cons 11 pt0)
  38.                (cons 40 (* (getvar 'dimscale) 5))(cons 41 0.8) (cons 71 0)(cons 72 4)))
  39. (progn(command "_.line" pt2 (getpoint pt2 "\n指定个引线第三点:") "")(command "chprop" (entlast) ""  "LA" "02标注" "") )
  40. )

  41. (SETVAR "CMDECHO" 1)
  42. ;;(undoe)
  43. (prin1)
  44. )
发表于 2018-11-10 19:49:27 | 显示全部楼层
本帖最后由 lisperado 于 2018-11-12 12:12 编辑

  1. (defun c:tt (/ e o h)
  2.   (initget 6)
  3.   (and (setq h (getvar 'dimasz)
  4.              h (cond ((getdist (strcat "\n设定箭头大小  <" (rtos h 2) "> ? : ")))
  5.                      (h)
  6.                      )
  7.              )
  8.        (setvar 'dimasz h)
  9.        (while (setq e (car (entsel "\n选取引线.. ")))
  10.          (setq o (vlax-ename->vla-object e))
  11.          (mapcar '(lambda (a b)
  12.                     (if (vlax-property-available-p o a)
  13.                       (vlax-put o a b)
  14.                       )
  15.                     )
  16.                  '(ArrowheadType ArrowheadSize)
  17.                  (list 3 h)
  18.                  )
  19.          )
  20.        )
  21.   (princ)
  22.   )




注:
已修改 (list 3.0  h)  
虽然没发生错误,ArrowheadType默认参数是整数
(list 3 h)

 楼主| 发表于 2018-11-10 16:48:24 | 显示全部楼层
不能通过改标注样式里的 默认引线箭头,因为这样改的话,以后样式稍有改动,会影响到一片。
 楼主| 发表于 2018-11-10 23:16:26 | 显示全部楼层

牛!!!
谢了。
牛!!!!!!!!!!!!!!!!!!!
发表于 2018-11-12 15:40:13 | 显示全部楼层
不用太麻烦
(getvar 'dimldrblk)

(setvar 'dimldrblk "小点")

(setvar 'dimldrblk ".")
 楼主| 发表于 2018-11-12 19:24:06 | 显示全部楼层
本帖最后由 iJero 于 2018-11-12 19:27 编辑
菜卷鱼 发表于 2018-11-12 15:40
不用太麻烦
(getvar 'dimldrblk)

谢谢。
但你所说的 “DimLDrawBlk”是标注样式里的“引线”变量,
我想要的是单独一个Leader图元的箭头样式和大小
发表于 2018-11-13 09:43:46 | 显示全部楼层
用 dimscale 呢?
 楼主| 发表于 2018-11-13 10:09:46 | 显示全部楼层

谢谢。但
这个变量也是跟上面的一个意思,也是控制标注样式整体的箭头大小的,而不是针对具体某个图元的。
发表于 2018-11-13 10:42:00 | 显示全部楼层
我的意思是,你先获取目前正在使用的标注比例,以及箭头样式,
然后要使用引线时,再设置成你需要的标注比例跟样式,
标注完之后,再恢复之前的就可以了。
你先
(setq oldsc (getvar 'dimscale) oldys (getvar 'dimldrblk))
然后
(setvar 'dimscale "你要的比例")
(setvar 'dimldrblk "你要的样式")
再进行
(command "_.leader"   )
.......
标注完之后,再恢复成之前的
(setvar  'dimscale  oldsc )
(setvar  'dimldrblk oldys )
 楼主| 发表于 2018-11-13 10:50:54 | 显示全部楼层
菜卷鱼 发表于 2018-11-13 10:42
我的意思是,你先获取目前正在使用的标注比例,以及箭头样式,
然后要使用引线时,再设置成你需要的标注比 ...

谢谢
其实我理解你的意思,先获取当前信息,再改、画,然后再设置回原来的信息。
但这样做,一刷新后全部都变成老样子。
这个跟LINE之类的还是不一样,比如LINE可以先颜色设为某色,等画完后再重设回原来的样子
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 05:28 , Processed in 0.201684 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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