引线标注的端部线型设置为箭头
本帖最后由 back 于 2025-4-20 20:02 编辑请教一下,我想要把引线标注的端部线型
想要设置为“箭头”型式
下面的代码请指导一下这样子的写是否正确
[*](defun VIEW_GJ (VOBJ VBASEPT VBL / DIST FIRSTPT LOOP_ID NEWCENPT PT1 PT2 VANGLE VPOINT VPOINTENT MOVEPT LEADERPOINTS LEADER)
[*](setq LOOP_ID T)
[*](setq ALPHA 0)
[*](setvar "CURSORSIZE" 1) ; 将光标大小设置为1,最小尺寸
[*](princ "\n请输入编号标注点:")
[*](while LOOP_ID
[*] (setq VPOINTENT (grread T 4 1))
[*] (if (= 5 (car VPOINTENT)) ; 滑鼠移动事件
[*] (progn
[*] (redraw)
[*] (setq VPOINT (cadr VPOINTENT))
[*] (setq MOVEPT VPOINT) ; 记录直线第二点
[*] (setq DIST (distance VBASEPT VPOINT))
[*] (setq VANGLE (angle VBASEPT VPOINT))
[*] (setq NEWCENPT (polar VBASEPT VANGLE (+ DIST (* VBL 2.5))))
[*] (setq FIRSTPT (vlax-3d-point NEWCENPT))
[*] (vla-put-insertionpoint VOBJ FIRSTPT)
[*]
[*] ;; 显示动态线预览
[*] (grvecs (list 2 VBASEPT VPOINT))
[*] )
[*] )
[*]
[*] ;; 若按下点选完成
[*] (if (or (= 3 (car VPOINTENT)) (= 2 (car VPOINTENT)) (= 11 (car VPOINTENT)))
[*] (progn
[*] (redraw)
[*] (setq LOOP_ID nil)
[*] (setq STARTPT (vlax-3d-point VBASEPT))
[*] (setq ENDPT (vlax-3d-point MOVEPT))
[*]
[*] ;; 建立箭头引线
[*]
[*] (setq LeaderPoints (vlax-make-safearray vlax-vbDouble '(0 . 5)))
[*] (vlax-safearray-put-element LeaderPoints 0 (car VBASEPT))
[*] (vlax-safearray-put-element LeaderPoints 1 (cadr VBASEPT))
[*] (vlax-safearray-put-element LeaderPoints 2 0.0)
[*] (vlax-safearray-put-element LeaderPoints 3 (car MOVEPT))
[*] (vlax-safearray-put-element LeaderPoints 4 (cadr MOVEPT))
[*] (vlax-safearray-put-element LeaderPoints 5 0.0)
[*]
[*] (setq Leader (vla-addLeader
[*] MSPACE
[*] LeaderPoints
[*] VOBJ
[*] acLineWithArrow)) ; 指定箭头样式
[*]
[*] ;; 设定图层
[*] (setvar "CLAYER" "符号")
[*] )
[*] )
[*])
[*](setvar "CURSORSIZE" OLDCURS)
[*](princ)
[*])
屎黄色真的看清楚代码? liuhe 发表于 2025-4-20 19:44
屎黄色真的看清楚代码?
对不起…
小弟没注意到 我一般使用 vla-put-ArrowheadType 去设置的 , 箭头样式是 0开始 , 最大多少个,你可以从箭头属性表里去数,一般我是用 11
(vla-put-ArrowheadTypeLeader11)
页:
[1]