直线板筋改带斜钩板筋,待完善
小弟不才,刚学lisp不久,自己拼了个直线改带斜钩的程序,这里有两个问题。1、精度不高,要把直线显示到足够大,才能成功改成斜钩.2、每次只能选一条直线,不能批量选择。 望大侠完善,特别是第一个问题,困扰了我好段时间。我编的其他画多线的命令,都要将cad的上的图显示到要画的多线的单位差不多数量级时,才能成功。(defun c:y57 ()
(setq ent (car (entsel "\n请选取直线:")));;ent 为实体名
(if ent (progn
(setq el (entget ent))
(if (equal (cdr (assoc 0 el)) "LINE")
(progn
(setq p1 (cdr (assoc 10 el))) ;;p1,p2分别为直线的起、终点
(setq p2 (cdr (assoc 11 el)))
(setq dist1 (distance p1 p2));读取p1 p2间距
(setq ang1 (angle p1 p2));读取直线的角度间距
))
))
;(setq p1 (polar p1ang1 100));定义钢筋起点
;(setq p2 (polar p2(+ (* 1.0 pi) ang1) 100));定义钢筋终点
(setq p3 (polar p1 (+ (* 0.25 pi) ang1) 200));定义钢筋起点
(setq p4 (polar p2 (+ (* 0.75 pi) ang1) 200));定义钢筋起点
(command "pline" p3 p1 p2 p4 "")
(entdel ent)
(princ)
) (defun c:y57 ()
(setq OLDOSM (getvar "osmode"))
(setvar "osmode" 0)
(setq ent (car (entsel "\n请选取直线:")));_ent 为实体名
(if ent
(progn
(setq el (entget ent))
(if (equal (cdr (assoc 0 el)) "LINE")
(progn
(setq p1 (cdr (assoc 10 el)))
;;p1,p2分别为直线的起、终点
(setq p2 (cdr (assoc 11 el)))
(setq dist1 (distance p1 p2)) ;读取p1 p2间距
(setq ang1 (angle p1 p2)) ;读取直线的角度间距
)
)
)
)
;(setq p1 (polar p1ang1 100));定义钢筋起点
;(setq p2 (polar p2(+ (* 1.0 pi) ang1) 100));定义钢筋终点
(setq p3 (polar p1 (+ (* 0.25 pi) ang1) 200)) ;定义钢筋起点
(setq p4 (polar p2 (+ (* 0.75 pi) ang1) 200)) ;定义钢筋起点
(command "pline" p3 p1 p2 p4 "")
(entdel ent)
(setvar "osmode" OLDOSM)
(princ)
)
不知道你要什么效果但想画好的话
头
(setq OLDOSM (getvar "osmode"))
(setvar "osmode" 0)
和尾
(setvar "osmode" OLDOSM)
这几段必须加
谢谢,貌似就是这样。批量改,以后再学个循环就搞定了。 (defun c:tt ()
(defun aaa (s1 / el p1 p2 rad p3 p4)
(setq el(entget s1)
p1(cdr (assoc 10 el))
p2(cdr (assoc 11 el))
rad (angle p1 p2)
p3(polar p1 (+ (* 0.25 pi) rad) 200)
p4(polar p2 (+ (* 0.75 pi) rad) 200)
)
(command "pline" p3 p1 p2 p4 "")
(entdel s1)
)
(setvar "osmode" 0)
(setq ss (ssget '((0 . "line")))
i-1
)
(while (setq s1 (ssname ss (setq i (1+ i))))
(aaa s1)
)
(princ)
) 本帖最后由 psdcdr 于 2012-8-7 09:28 编辑
在PKPM的绘图参数不是有设置带钩的吗?
psdcdr 发表于 2012-8-7 09:27 static/image/common/back.gif
在PKPM的绘图参数不是有设置带钩的吗?
公司有自己的画图规定,网上的插件几乎都不能用,所以我只能自己慢慢学点lisp。 本帖最后由 石井鱼 于 2014-3-16 17:41 编辑
请教一下一条直线(非PL线)一端加斜钩怎么弄,tssd必须是PL线,最好能再加个能选择斜钩方向,画结构大样经常用到,谢谢!
xyp1964 发表于 2012-8-7 09:08
请问我输入命令无效,而且加载就出现选择窗口是怎么回事?
页:
[1]