xj6019
发表于 2020-11-8 21:07:50
ninja37 发表于 2020-11-8 20:30
楼主帮忙干一下这个小活。
http://bbs.mjtd.com/thread-182574-1-1.html
我的水平也只会点皮毛,只会拼凑代码,回你的帖子吧,凑了半天,凑起来了,试试可以吗
ninja37
发表于 2020-11-9 12:04:32
好的麻烦你了
sdls
发表于 2020-11-9 22:38:34
xj6019 发表于 2020-11-8 19:04
你把 (setq pt2 (list maxx miny))改成
(setq pt2 (list minx maxy))
试一下
可以了,还要调几个+-符号!:lol多谢楼主
疯球
发表于 2020-11-20 15:52:46
楼主,看看这个能写不:在CAD中设置了“测量比例因子”比如设置的是1:50
当在CAD中想画一条100长的直线(多段线等)时,如直接输入100,则用DLI测出的结果是5000,必须输入2才可以得到100的长度
想要的结果是:输入L命令,提示长度时输入100,结果是2
以下代码是找人写的,能不能合到系统的命令里
(DEFUN WH_DXF(CODE ENTNAME) (CDR (ASSOC CODE (ENTGET ENTNAME))));DEFUN
(defun DTOR (a) (* pi (/ a 180.0)))
(defun RTOD (a) (* 180.0 (/ a pi)))
(defun c:l()
(command "undo" "be")(setq osmode (getvar "osmode"))(setvar "cmdecho" 0)
(setvar "osmode" 16383)(vl-load-com)
(setq blyz (getvar "dimlfac"))
(setq cd (getreal "\n请输入直线长度"))
(setq cdreal (/ cd blyz))
(setq pt1 (getpoint "\n请选择直线起点")
pt2 (getpoint pt1 "\n请点选以确定直线方向")
)
(command "line" pt1 pt2 "")
(setq ss (ssget "l"))
(setq scnum (/ cdreal (distance pt1 pt2)))
(command "scale" ss "" pt1 scnum)
(setvar "osmode" osmode)
(command "undo" "e")(princ)
)