画矩形,向外偏移100并调整线宽为10
想要这样功能的一个程序:画一个矩形,自动向外偏移100(删除原来的线)并调整线宽为10,哪位大侠能帮忙一下,谢谢 adc 发表于 2011-7-5 10:28 static/image/common/back.gif把程序贴出来等答案,希望能在不同的ucs下也能正确画出弯钩
(defun c:test ()
(if (setq
这是坐标系的关系,8楼已修改 回复 adc 的帖子
帮你贴张图!~~呵呵!~~~
本帖最后由 ljpnb 于 2011-7-3 18:02 编辑
(defun c:test ()
(if (setq
dis
(getdist
(strcat "\n输入偏移距离<" (rtos (getvar "offsetdist")) ">:")
)
)
(setvar "offsetdist" dis)
(setq dis (getvar "offsetdist"))
)
(if
(setq
wid (getreal
(strcat "\n输入线宽<" (rtos (getvar "plinewid")) ">:")
)
)
(setvar "plinewid" wid)
(setq wid (getvar "plinewid"))
)
(command "RECTANG" pause)
(setq pt1 (getvar "lastpoint"))
(command pause)
(setq pt2 (getvar "lastpoint"))
(if (setq ent (entlast))
(progn
(setq pt3 (polar pt2 (angle pt1 pt2) 1.))
(command "offset" dis ent "non" pt3 "")
(setq ent1 (entlast))
(command "pedit" ent1 "w" wid "")
(command "ERASE" ent "");保留第一框,去掉这句
)
)
(princ)
)
回复 ljpnb 的帖子
宽度100和线宽10都可以增加输入并有记忆功能,
这样用的时候就不会局限了,可以用的更广泛些!~~呵呵@~~~ 回复 ljpnb 的帖子
完美!~~呵呵!~~ 回复 ljpnb 的帖子
多谢ljpnb帮忙,其实我是想用来画箍筋,请问能不能再进一步,矩形偏移加宽以后,在角部增加箍筋的弯钩 本帖最后由 ljpnb 于 2011-7-5 12:21 编辑
adc 发表于 2011-7-3 17:28 http://bbs.mjtd.com/static/image/common/back.gif
回复 ljpnb 的帖子
多谢ljpnb帮忙,其实我是想用来画箍筋,请问能不能再进一步,矩形偏移加宽以后,在角部 ...
你试试看,有问题再说...
本帖最后由 adc 于 2011-7-3 21:11 编辑
回复 ljpnb 的帖子
多谢,多谢,有个小问题就是,在不同的ucs下,不能画出弯钩来,请问怎么解决 把程序贴出来等答案,希望能在不同的ucs下也能正确画出弯钩
(defun c:test ()
(if (setq
dis
(getdist
(strcat "\n输入偏移距离<" (rtos (getvar "offsetdist")) ">:")
)
)
(setvar "offsetdist" dis)
(setq dis (getvar "offsetdist"))
)
(if
(setq
wid (getreal
(strcat "\n输入线宽<" (rtos (getvar "plinewid")) ">:")
)
)
(setvar "plinewid" wid)
(setq wid (getvar "plinewid"))
)
(command "RECTANG" pause)
(setq pt1 (getvar "lastpoint"))
(command pause)
(setq pt2 (getvar "lastpoint"))
(if (setq ent (entlast))
(progn
(setq pt3 (polar pt2 (angle pt1 pt2) 1.))
(command "offset" dis ent "non" pt3 "")
(setq ent1 (entlast))
(command "pedit" ent1 "w" wid "")
;;(command "ERASE" ent "");保留第一框,去掉这句
(SETQ
lst (vl-remove-if '(lambda (x) (/= 10 (car x))) (entget ent1))
)
(setq lst1 (vl-sort lst
(function (lambda (e1 e2)
(> (cadr e1) (cadr e2))
)
)
)
)
(setq lst1 (vl-sort (list (nth 0 lst1) (nth 1 lst1))
(function (lambda (e1 e2)
(> (caddr e1) (caddr e2))
)
)
)
)
(setq pt4 (cdr (nth 0 lst1)))
(setq pt5 (polar pt4 pi 23.);;23可以改成可输入方式
pt6 (polar pt4 (* pi 1.5) 23.)
)
(setq pt55 (polar pt5 (* 1.25 pi) 40.);;40可以改成可输入方式
pt66 (polar pt6 (* 1.25 pi) 40.)
)
(command "pline" "non" pt5 "non" pt55 "")
(command "pline" "non" pt6 "non" pt66 "")
)
)
(princ)
)
页:
[1]
2