iCAx开思网

标题: cad中不同层间偏移实体(提供源码) [打印本页]

作者: ken_terry    时间: 2010-10-25 22:48
标题: cad中不同层间偏移实体(提供源码)
在层间偏移很有用,所以在网上找了以下文件,但做成LSP后还是不能用 ,有那个高手帮忙做成LSP,谢谢!

  在cad作图中,“offset”命令只能在同一层中偏移实体,而实际绘图中常常需要在不同层间偏移实体。例如:在一层上画完中心线后,只需将其向两边偏移一定的距离即可得到轮廓线,而中心线和轮廓线一般不在同一层上,还需改变轮廓线所在层。下面这个用autolisp编写的程序可以在不同层间偏移实体,解决了这一问题。其中变量“layer”定义为全局变量,指要把实体偏移到所在层的层名。当使用该函数时,如果所偏移到的层与上次相同,可以不用输入层名(变量“layer”的值)。

  (defun cla(/cmdecho d d1 lay ent p)

  (if *error* quit)

  (setq cmdecho (getvar ″cmdecho″))

  (setvar″cmdecho″1)

  (princ″\noffset dist<″)

  (setq d(getvar ″offsetdist″))

  (if(/=d-1)(princ d))

   (setq d1(getdist″>:″))

   (if(/=d1 nil)(setq d d1))

   (princ″\ninput the layer name to offset to<″)

   (if(/=layer nil)(princ layer))

   (setq lay(getstring ″>:″))

   (if (/=lay ″ ″)(setq layer lay))

   (while(setq ent(entsel ″\nselect object to offset:″))

   (setq p(getpoint″\nside object to offset?″))

   (command ″—.offset″d ent p″ ″)

   (command ″—.change″ ″1″ ″″ ″p″ ″layer″layer″ ″)

   )

   (setvar″cmdecho″ cmdecho)

   (princ)

  )[attach]1043683[/attach][attach]1043683[/attach]

本帖最后由 ken_terry 于 2010-10-25 22:51 编辑
作者: ken_terry    时间: 2010-10-25 23:35
怎么没人出来指点一下
作者: ken_terry    时间: 2010-10-27 14:50
高手去那里啦
作者: meixiang    时间: 2010-12-11 23:05
高手去那里啦,快来
作者: meixiang    时间: 2010-12-11 23:06
下是我所要的




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3