求助,使用这个填充继承特性LSP老是自动取消几何中心捕捉点,有没有大神帮忙修改下
本帖最后由 pizi158545086 于 2021-11-12 09:49 编辑求助,使用这个填充继承特性LSP老是自动取消几何中心捕捉点,有没有大神帮忙修改下,调整不影响捕捉,谢谢!
源码:
(defun c:R3(/ e en key n p ss tc_ang tc_col tc_e tc_la tc_name tc_scle tc_vlae)
(cxsta)
(vl-load-com)
(setq en (entlast))
(if (setq tc_e (car (entsel "\n选择填充源图案:")))
(progn
(IF (= (CDR (ASSOC 0 (ENTGET TC_E))) "HATCH")
(PROGN
(setq tc_vlae (vlax-ename->vla-object tc_e)
tc_name (vla-get-patternname tc_vlae)
tc_scle (vla-get-patternscale tc_vlae)
tc_ang (vla-get-patternangle tc_vlae)
tc_la (vla-get-layer tc_vlae)
tc_col (vla-get-color tc_vlae)
)
(if (= "_USER" tc_name)
(command "bhatch"
"p"
"U"
(* 180 (/ tc_ang pi))
tc_scle
"y"
""
)
(command "bhatch"
"p"
tc_name
tc_scle
(* 180 (/ tc_ang pi))
""
)
)
(thpanduan)
(if (setq ss (cx-en-ss en))
(progn
(cx-gs ss tc_col)
(repeat (setq n (sslength ss))
(vla-put-layer
(vlax-ename->vla-object (ssname ss (setq n (1- N))))
tc_la
)
)
)
)
)
)
)
(PROMPT "选择的不是填充\n")
)
(cxend)
)
;api接口 填充判断
(defun thpanduan ()
(if (setq ss (ssget))
(command "bhatch" "s" ss "" "") ;如果选择集不为空,则执行对象填充
(progn ;如果选择集为空,则执行点选命令
(prompt "\n请拾取填充内部点:\n")
(command "bhatch" pause)
(while (> (getvar "CMDACTIVE") 0) (command PAUSE))
)
)
)
;返回en之后的选择集
(defun cx-en-ss (en / ss)
(if en
(progn
(setq ss (ssadd))
(while (entnext en)
(setq ss (ssadd (entnext en) ss))
(setq en (entnext en))
)
(if (> (sslength ss) 0)
ss
nil
)
)
)
)
(defun cx-gs (en clo / en clo)
(cond
((= (type en) 'ENAMe)
(vla-put-Color (vlax-ename->vla-object en) clo)
)
((= (type en) 'PICKSET)
(repeat (setq i (sslength en))
(vla-put-Color
(vlax-ename->vla-object (ssname en (setq i (1- i))))
clo
)
)
)
((= (type en) 'VLA-OBJECT)
(vla-put-Color en clo)
)
)
)
(defun cxsta ()
(setvar "cmdecho" 0) ; 关闭命令响应
(setq $orr *error*)
(setq *error* #err2) ; 当程序出错时就会执行#err函数
(command ".UNDO" "BE"); 设置UNDO起点
)
(defun cxend ()
(command ".UNDO" "E") ; 设置UNDO终点
(setq *error* $orr)
(setvar "osmode" 15359)
(princ)
)
;;; 出错处理函数
(defun #err2 (s)
(command ".UNDO" "E") ; 设置UNDO终点
(redraw name1 4)
(redraw name2 4)
(princ)
(setq *error* $orr)
)
把这句删了看看 (setvar "osmode" 15359) 什么是几何中心捕捉点? alexmai 发表于 2021-11-12 09:44
什么是几何中心捕捉点?
不好意思忘记点击上传图片了就是这个捕捉点设置界面的几何中心
start4444 发表于 2021-11-12 09:53
把这句删了看看 (setvar "osmode" 15359)
可以了 谢谢 我用旧版cad 不需要用这个捕捉
在(princ) 前上一行,增加
(setvar "osmode" 16383); alexmai 发表于 2021-11-12 09:59
我用旧版cad 不需要用这个捕捉
在(princ) 前上一行,增加
谢谢帮忙刚刚已经搞定了 不错,值得学习
页:
[1]