entmakeX如何设置Leader 的箭头大小
本帖最后由 yu960312 于 2024-11-18 18:41 编辑[*];;1.entmakeX如何设置Leader 的箭头大小
[*];;2.entmod如何更新箭头端点的坐标
[*](setq ss_leader(entmakeX (list
[*]'(0 . "LEADER")
[*]'(100 . "AcDbEntity")
[*]'(100 . "AcDbLeader")
[*](cons 10 (list 10.0 0.0 0.0));;箭头起点
[*](cons 10 (list 0.0 0.0 0.0));;箭头端点
[*])
[*])
[*])
entmakeX不能设置Leader 的箭头大小,用vla-put-ArrowheadSize可以。
用vlax-Put ‘Coordinates 更新箭头端点的坐标方便点。
caoyin版主有帖子里有。 自贡黄明儒 发表于 2024-11-18 16:04
caoyin版主有帖子里有。
好的,去学习学习 gzcsun 发表于 2024-11-18 15:47
entmakeX不能设置Leader 的箭头大小,用vla-put-ArrowheadSize可以。
用vlax-Put ‘Coordinates 更新箭 ...
OK,我去研究研究 本帖最后由 yu960312 于 2024-11-18 18:38 编辑
[*];;现在是用新建标注样式来控制箭头颜色,用扩展数据来修改箭头大小
[*];;不知是否有更简单的方法实现
[*](defun C:test1 ()
[*](DEFUN ACC_SUB()
[*](setq h 2.0)
[*](setq name "leader")
[*](setvar "DIMBLK" ".");;设置尺寸线末端显示的箭头块。
[*](setvar "DIMSAH" 1);;控制尺寸线箭头块的显示。0表示使用由 DIMBLK 系统变量设置的箭头块,1表示使用由 DIMBLK1 和 DIMBLK2 系统变量设置的箭头块
[*](setvar "DIMBLK1" "");;第一个箭头的样式
[*](setvar "DIMBLK2" "");;第二个箭头的样式
[*](setvar "DIMLDRBLK" ".");引线箭头的样式
[*](setvar "dimtxt" h) ;文字高度
[*](setvar "dimasz" 0.5) ;箭头大小
[*](setvar "dimexe" 2) ;尺寸界限超出长度
[*](setvar "dimexo" 0) ;尺寸界限起点距离
[*](setvar "dimgap" (* 0.25 h)) ;标注文字周围的距离
[*](setvar "DIMDLI" (* 2 h)) ;控制基线标注中尺寸线的间距
[*](setvar "DIMATFIT" 3) ;当尺寸界线不足放下标注文字和箭头时,函数DIMATFIT确定位置
[*](setvar "DIMUPT" 1) ;控制文字相对尺寸线的垂直位置
[*](setvar "DIMTAD" 0) ;控制文字相对尺寸线的垂直位置
[*](setvar "DIMDEC" 3) ;小数位数:3
[*](setvar "DIMJUST" 0) ;控制标注文字的水平位置
[*](setvar "DIMDSEP" ".") ;小数分隔符为 .
[*](setvar "DIMTOFL" 0) ;控制标注文字在尺寸界线外的位置
[*](setvar "dimtmove" 0) ;关对齐,设置标注文字的移动规则:0 水平
[*](setvar "dimcen" 0) ;标注圆心:不标,
[*](setvar "dimclrd" 4) ;为尺寸线、箭头和标注引线指定颜色
[*](setvar "dimclre" 3) ;为尺寸界线指定颜色
[*](setvar "DIMCLRT" 7) ;为标注文字指定颜色
[*](setvar "DIMADEC" 3) ;标注角度位数
[*](setvar "dimzin" 1) ;标注角度消0
[*](setvar "DIMLFAC" 1);测量单位比例
[*](setvar "DIMSCALE" 1);标注全局比例
[*](setvar "DIMTXSTY" "Standard")
[*](if (not (tblsearch "dimstyle" name))
[*](vl-cmdf "DIMSTYLE" "S" name)
[*](vl-cmdf "DIMSTYLE" "S" name "y")
[*])
[*])
[*](ACC_SUB);;新建标注样式
[*](setq PT1(LIST 0.0 0.0 0.0))
[*](setq leader_l 10);;箭头长度
[*](setq leader_h 5);;箭头大小
[*](setq ss_leader(entmakeX (list
[*]'(0 . "LEADER")
[*]'(100 . "AcDbEntity")
[*]'(100 . "AcDbLeader")
[*]'(3 . "leader");;标注样式
[*](cons 10 (list (car PT1) (+ (cadr PT1) leader_l)))
[*](cons 10 PT1)
[*](LIST -3 (LIST "ACAD" (cons 1000 "DSTYLE") (cons 1002 "{") (cons 1070 40) (cons 1040 leader_h) (cons 1070 340) (cons 1070 0) (cons 1002 "}")))
[*])
[*])
[*])
[*](princ)
[*])
gzcsun 发表于 2024-11-18 15:47
entmakeX不能设置Leader 的箭头大小,用vla-put-ArrowheadSize可以。
用vlax-Put ‘Coordinates 更新箭 ...
能否给个示例程序
用vla-put-ArrowheadSize设置Leader 的箭头大小
用vla-put-Coordinates更新箭头端点的坐标
学习学习,研究研究。。 yu960312 发表于 2024-11-18 18:43
能否给个示例程序
用vla-put-ArrowheadSize设置Leader 的箭头大小
用vla-put-Coordinates更新箭头端点 ...
(vla-put-ArrowheadSize (Vlax-Ename->Vla-Object (Car(Entsel))) 3.3)
(vlax-Put (Vlax-Ename->Vla-Object (Car(Entsel))) 'Coordinates '(10.0 10.0 0.0 -10.0 -10.0 0.0)) gzcsun 发表于 2024-11-22 13:25
(vla-put-ArrowheadSize (Vlax-Ename->Vla-Object (Car(Entsel))) 3.3)
(vlax-Put (Vlax-Ename->Vla-Obj ...
学习了,感谢大佬指点
页:
[1]