LSP怎么改Leader(引线)里的箭头样式和大小
leader绘制的引线,里面的箭头怎么用LSP改成“点”,还有大小你自己先试一下再说,我一直这样画图的,我设置的是QQ画小点引线,QA画箭头引线。
我在一个图档里所有的标注样式只有一个,只是设置的dimscale 标注比例不同。
你自己先试一下再说,我一直这样画图的,我设置的是QQ画小点引线,QA画箭头引线。
我在一个图档里所有的标注样式只有一个,只是设置的dimscale 标注比例不同。
(defun c:Qq ( / mirrtxt pt1 pt2 pt3 pt0)
(setq pt1 (getpoint"\n指定个引线第一点:"))
(setq pt2 (getpoint pt1 "\n指定个引线第二点:"))
;;(undobe)
(SETVAR "CMDECHO" 0)
(setvar 'dimldrblk "小点")
(setq *error* q_err )
(setq qscale (getvar "dimscale"))
(setvar "attreq" 0)
(setq pt3(mapcar '/ (mapcar '+ pt1 pt2) '(2 2 2)))
(setq pt0 ( polar pt3 (angtof "90") (* 3.5 (getvar 'dimscale))) )
(command "_.leader" "non" pt1 "non" pt2 "" "" "n")
(command "chprop" (entlast) """LA" "02标注" "")
(if (= (fix(cadr pt1))(fix(cadr pt2)))
(entmake (list '(0 . "TEXT") (cons 1 "默认文字") (cons 7 (getvar 'textstyle)) '(8 . "06文字层") (cons 10 pt1)(cons 11 pt0)
(cons 40 (* (getvar 'dimscale) 5))(cons 41 0.8) (cons 71 0)(cons 72 4)))
(progn(command "_.line" pt2 (getpoint pt2 "\n指定个引线第三点:") "")(command "chprop" (entlast) """LA" "02标注" "") )
)
(SETVAR "CMDECHO" 1)
;;(undoe)
(prin1)
)
(defun c:Qa ( / mirrtxt pt1 pt2 pt3 pt0)
(setq pt1 (getpoint"\n指定个引线第一点:"))
(setq pt2 (getpoint pt1 "\n指定个引线第二点:"))
;;(undobe)
(SETVAR "CMDECHO" 0)
(setvar 'dimldrblk ".")
(setq *error* q_err )
(setq qscale (getvar "dimscale"))
(setvar "attreq" 0)
(setq pt3(mapcar '/ (mapcar '+ pt1 pt2) '(2 2 2)))
(setq pt0 ( polar pt3 (angtof "90") (* 3.5 (getvar 'dimscale))) )
(command "_.leader" "non" pt1 "non" pt2 "" "" "n")
(command "chprop" (entlast) """LA" "02标注" "")
(if (= (fix(cadr pt1))(fix(cadr pt2)))
(entmake (list '(0 . "TEXT") (cons 1 "默认文字") (cons 7 (getvar 'textstyle)) '(8 . "06文字层") (cons 10 pt1)(cons 11 pt0)
(cons 40 (* (getvar 'dimscale) 5))(cons 41 0.8) (cons 71 0)(cons 72 4)))
(progn(command "_.line" pt2 (getpoint pt2 "\n指定个引线第三点:") "")(command "chprop" (entlast) """LA" "02标注" "") )
)
(SETVAR "CMDECHO" 1)
;;(undoe)
(prin1)
)
你自己尝试过没有?同一个标注样式名,可以标注出不同的样式!
(defun c:qq ( / mirrtxt pt1 pt2 pt3 pt0)
(setq pt1 (getpoint"\n指定个引线第一点:"))
(setq pt2 (getpoint pt1 "\n指定个引线第二点:"))
;;(undobe)
(SETVAR "CMDECHO" 0)
(setvar 'dimldrblk "小点")
(setq *error* q_err )
(setq qscale (getvar "dimscale"))
(setvar "attreq" 0)
(setq pt3(mapcar '/ (mapcar '+ pt1 pt2) '(2 2 2)))
(setq pt0 ( polar pt3 (angtof "90") (* 3.5 (getvar 'dimscale))) )
(command "_.leader" "non" pt1 "non" pt2 "" "" "n")
(command "chprop" (entlast) """LA" "02标注" "")
(if (= (fix(cadr pt1))(fix(cadr pt2)))
(entmake (list '(0 . "TEXT") (cons 1 "默认文字") (cons 7 (getvar 'textstyle)) '(8 . "06文字层") (cons 10 pt1)(cons 11 pt0)
(cons 40 (* (getvar 'dimscale) 5))(cons 41 0.8) (cons 71 0)(cons 72 4)))
(progn(command "_.line" pt2 (getpoint pt2 "\n指定个引线第三点:") "")(command "chprop" (entlast) """LA" "02标注" "") )
)
(SETVAR "CMDECHO" 1)
;;(undoe)
(prin1)
)
(defun c:qa ( / mirrtxt pt1 pt2 pt3 pt0)
(setq pt1 (getpoint"\n指定个引线第一点:"))
(setq pt2 (getpoint pt1 "\n指定个引线第二点:"))
;;(undobe)
(SETVAR "CMDECHO" 0)
(setvar 'dimldrblk ".")
(setq *error* q_err )
(setq qscale (getvar "dimscale"))
(setvar "attreq" 0)
(setq pt3(mapcar '/ (mapcar '+ pt1 pt2) '(2 2 2)))
(setq pt0 ( polar pt3 (angtof "90") (* 3.5 (getvar 'dimscale))) )
(command "_.leader" "non" pt1 "non" pt2 "" "" "n")
(command "chprop" (entlast) """LA" "02标注" "")
(if (= (fix(cadr pt1))(fix(cadr pt2)))
(entmake (list '(0 . "TEXT") (cons 1 "默认文字") (cons 7 (getvar 'textstyle)) '(8 . "06文字层") (cons 10 pt1)(cons 11 pt0)
(cons 40 (* (getvar 'dimscale) 5))(cons 41 0.8) (cons 71 0)(cons 72 4)))
(progn(command "_.line" pt2 (getpoint pt2 "\n指定个引线第三点:") "")(command "chprop" (entlast) """LA" "02标注" "") )
)
(SETVAR "CMDECHO" 1)
;;(undoe)
(prin1)
) 本帖最后由 lisperado 于 2018-11-12 12:12 编辑
(defun c:tt (/ e o h)
(initget 6)
(and (setq h (getvar 'dimasz)
h (cond ((getdist (strcat "\n设定箭头大小<" (rtos h 2) "> ? : ")))
(h)
)
)
(setvar 'dimasz h)
(while (setq e (car (entsel "\n选取引线.. ")))
(setq o (vlax-ename->vla-object e))
(mapcar '(lambda (a b)
(if (vlax-property-available-p o a)
(vlax-put o a b)
)
)
'(ArrowheadType ArrowheadSize)
(list 3 h)
)
)
)
(princ)
)
注:
已修改 (list 3.0h)
虽然没发生错误,ArrowheadType默认参数是整数
(list 3 h)
不能通过改标注样式里的 默认引线箭头,因为这样改的话,以后样式稍有改动,会影响到一片。 lisperado 发表于 2018-11-10 19:49
牛!!!
谢了。
牛!!!!!!!!!!!!!!!!!!! 不用太麻烦
(getvar 'dimldrblk)
(setvar 'dimldrblk "小点")
(setvar 'dimldrblk ".") 本帖最后由 iJero 于 2018-11-12 19:27 编辑
菜卷鱼 发表于 2018-11-12 15:40
不用太麻烦
(getvar 'dimldrblk)
谢谢。
但你所说的 “DimLDrawBlk”是标注样式里的“引线”变量,
我想要的是单独一个Leader图元的箭头样式和大小 用 dimscale 呢? 菜卷鱼 发表于 2018-11-13 09:43
用 dimscale 呢?
谢谢。但
这个变量也是跟上面的一个意思,也是控制标注样式整体的箭头大小的,而不是针对具体某个图元的。 我的意思是,你先获取目前正在使用的标注比例,以及箭头样式,
然后要使用引线时,再设置成你需要的标注比例跟样式,
标注完之后,再恢复之前的就可以了。
你先
(setq oldsc (getvar 'dimscale) oldys (getvar 'dimldrblk))
然后
(setvar 'dimscale "你要的比例")
(setvar 'dimldrblk "你要的样式")
再进行
(command "_.leader" )
.......
标注完之后,再恢复成之前的
(setvar'dimscaleoldsc )
(setvar'dimldrblk oldys ) 菜卷鱼 发表于 2018-11-13 10:42
我的意思是,你先获取目前正在使用的标注比例,以及箭头样式,
然后要使用引线时,再设置成你需要的标注比 ...
谢谢
其实我理解你的意思,先获取当前信息,再改、画,然后再设置回原来的信息。
但这样做,一刷新后全部都变成老样子。
这个跟LINE之类的还是不一样,比如LINE可以先颜色设为某色,等画完后再重设回原来的样子
页:
[1]
2