(defun c:dj()
(setq p0 (getpoint "输入第一点:"))
(setq p1 (polar p0 0 100))
(setq p2 (polar p1 (* 0.5 pi) 30))
(command "line" p0 p1 "")
(setq l1 (entlast))
(command "line" p1 p2 "")
(setq l2 (entlast))
(command "chamfer" "t" "t" "d" 5 5 "chamfer" l1 l2 "" )
(prin1)
)
倒圆角命令快捷键就是【F】,所以lisp的命令不能是【F】,不要与其他命令冲突。
如果每次倒角的半径相同,就不需要重缓斗复输入半径,按【空格】键就可以重复上一次的动作。
使用command命令,测试了一下,不能调用倒角命令的半径输入功能。
从AutoCAD2010版本开始,CAD增加了【动作录制器】功能,可以录制动作,命名的时候可以用【A2】这样陆哪芦命名,早带这个命名就是命令,可以做到有些lisp程序做不到的功能。具体怎么使用,按【F1】在帮助里面查看。
块属性需要用entnext不断的往后取得到,下面给你一个例子把两个属性快的属性执行一致
(defun C:bpp() 复制属性
(setq ent1 nil ent2 nil)
(while (= nil ent1)(setq ent1 (car (entsel "\n数据源信郑块:")))) 取其中 一个块
(while (= nil ent2)(setq ent2 (car (entsel "宏坦岁\n需要被一致的块:")))) 取其中另一个块
(setq n
(length (vlax-safearray->list (vlax-variant-value
(vlax-invoke-method
(vlax-ename->vla-object ent1)
'蔽睁GetAttributes)
)))
)
(repeat n
(setq ent1 (entnext ent1))
(setq ent2 (entnext ent2))
(setq entlist1 (entget ent1))
(setq entlist2 (entget ent2))
(setq entlist2 (subst (assoc 1 entlist1) (assoc 1 entlist2) entlist2))
(entMOD entlist2)
(entUPD ent2)
)
)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)