直接输入尺寸就可以生成这样的长方形的lisp怎么写
直接输入尺寸就可以生成这样的长方形的lisp怎么写基础的参数制图 全是计算 主要用polar函数然后画直线多段线 先用command写。你怎么在命令输入的,就怎么写 (defun c:tt (/ osm sg-cd sg-df sg-dfjl sg-kd sg-pt0 sg-pt1 sg-pt2 sg-pt3 sg-pt4 sg-pt5 sg-pt6 sg-ss)
(setvar "CMDECHO" 0)
(setvar"cmdecho"0)
(setvar"blipmode"0)
(setq osm (getvar "OSMODE"))
(setq sg-cd (getreal "\n 输入长度:")
sg-kd (getreal "\n 输入宽度:")
sg-df (getreal "\n 输入等分数:")
sg-pt0 (getpoint "\指定插入点:")
sg-pt1 (polar sg-pt0 0 (/ sg-cd 2.))
sg-pt2 (polar sg-pt1 (* pi 0.5) (/ sg-kd 2.))
sg-pt3 (polar sg-pt0 pi (/ sg-cd 2.))
sg-pt4 (polar sg-pt3 (* pi 1.5) (/ sg-kd 2.))
sg-dfjl (/ (distance sg-pt1 sg-pt3) sg-df)
sg-pt5 (polar sg-pt4 0 sg-dfjl)
sg-pt6 (polar sg-pt5 (* pi 0.5) sg-kd)
)
(command "RECTANG" "non" sg-pt2 "non" sg-pt4)
(command "LINE" "non" sg-pt5 "non" sg-pt6 "")
(setq sg-ss (entlast))
(command "-ARRAY" sg-ss "" "R" "1" (rtos sg-df) (rtos sg-dfjl))
(princ "\n绘制完毕!")
(setvar "OSMODE" osm)
(princ)
) 本帖最后由 夏生生 于 2023-12-5 19:51 编辑
试试
(defun c:tt(/ str->l a b lst pt str1 str2)
(defun str->l(Str Key / i s lst)
(while (setq i (vl-string-search Key Str))
(setq s (substr Str 1 i)
Str (substr Str
(+ 1
(strlen key)
(if i
i
0)))
Lst (cons s Lst)))
(vl-remove "" (reverse (cons str Lst))))
(setq str1 (getstring "\n横向尺寸(a,b,c..):")
str1 (mapcar 'atof (str->l str1 ","))
str2 (getstring "\n纵向尺寸(a,b,c..):")
str2 (mapcar 'atof (str->l str2 ","))
pt (getpoint "\n插入点:")
a 0
lst(mapcar
'(lambda (x)
(setq a(+ a x)
b0)
(mapcar'(lambda (y) (list (setq b (+ b y)) a))
(cons 0 str1)))
(cons 0 str2)))
(foreach nlst
(mapcar
'(lambda (x y)
(entmake
(list '(0 . "line")
(cons 10 (trans (mapcar '+ pt x) 1 0))
(cons 11 (trans (mapcar '+ pt y) 1 0)))))
n
(cdr n)))
(setq lst (apply 'mapcar (cons 'list lst)))
(foreach nlst
(mapcar
'(lambda (x y)
(entmake
(list '(0 . "line")
(cons 10 (trans (mapcar '+ pt x) 1 0))
(cons 11 (trans (mapcar '+ pt y) 1 0)))))
(cdr n)
n)))
感谢各位大神 感谢各位大神 飞雪神光 发表于 2023-12-5 12:14
基础的参数制图 全是计算 主要用polar函数然后画直线多段线
如果是复杂图形,几百条线段有没简化方式? 比如组合? 本帖最后由 bai2000 于 2023-12-6 12:04 编辑
夏生生 发表于 2023-12-5 19:33
试试
不错,不错, 水洗可口可乐 发表于 2023-12-6 11:25
如果是复杂图形,几百条线段有没简化方式? 比如组合?
如果是会因参数变化而变化的就要挨个画如果不变 可以弄个类似打包的 比如 打包图块一类的 明经上也有
页:
[1]
2