adc 发表于 2011-7-3 15:25:18

画矩形,向外偏移100并调整线宽为10

想要这样功能的一个程序:画一个矩形,自动向外偏移100(删除原来的线)并调整线宽为10,哪位大侠能帮忙一下,谢谢

ljpnb 发表于 2011-7-5 12:22:16

adc 发表于 2011-7-5 10:28 static/image/common/back.gif
把程序贴出来等答案,希望能在不同的ucs下也能正确画出弯钩
(defun c:test ()
(if (setq


这是坐标系的关系,8楼已修改

daidong013 发表于 2011-7-3 15:45:03

回复 adc 的帖子

帮你贴张图!~~呵呵!~~~

ljpnb 发表于 2011-7-3 16:02:48

本帖最后由 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)
)

daidong013 发表于 2011-7-3 16:17:15

回复 ljpnb 的帖子

宽度100和线宽10都可以增加输入并有记忆功能,
这样用的时候就不会局限了,可以用的更广泛些!~~呵呵@~~~

daidong013 发表于 2011-7-3 16:55:16

回复 ljpnb 的帖子

完美!~~呵呵!~~

adc 发表于 2011-7-3 17:28:32

回复 ljpnb 的帖子

多谢ljpnb帮忙,其实我是想用来画箍筋,请问能不能再进一步,矩形偏移加宽以后,在角部增加箍筋的弯钩

ljpnb 发表于 2011-7-3 19:05:05

本帖最后由 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 20:59:32

本帖最后由 adc 于 2011-7-3 21:11 编辑

回复 ljpnb 的帖子

多谢,多谢,有个小问题就是,在不同的ucs下,不能画出弯钩来,请问怎么解决

adc 发表于 2011-7-5 10:28:21

把程序贴出来等答案,希望能在不同的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
查看完整版本: 画矩形,向外偏移100并调整线宽为10