lxdz443 发表于 2015-3-19 19:59:29

求画下面图片里面图形的思路。

用lisp程序实现图中的功能,想了几天没有头绪,麻烦大家给个思路。谢谢。

ZZXXQQ 发表于 2015-3-19 21:32:15

;画指定图形 明经 ZZXXQQ        2015.3.20
(defun c:tt ()
(setvar "CMDECHO" 0)
(while (and (setq n (getint "\n输出数量: "))
             (setq pt (getpoint "\n左下角点: ")))
(setq pt1 (mapcar '+ pt '(10 0)))
(setq pt2 (mapcar '+ pt1 '(0 1)))
(setq pt3 (mapcar '+ pt1 '(4 1)))
(setq pt4 (mapcar '+ pt1 '(4 0)))
(setq pt4 (mapcar '+ pt (list (* 24 n) 10)))
(command "_.RECTANG" "non" pt "non" pt4)
(command "_.PLINE" "non" pt1 "non" pt2 "non" pt3 "non" pt4 "")
(if (> n 1) (command "_.AREA" "L" "" "R" 1 n 24))
)
(setvar "CMDECHO" 1)
(princ)
)

xyp1964 发表于 2015-3-19 22:00:37

;;上面代码修改;; tt(画指定图形)
(defun c:tt ()
(while (and (setq n (getint "\n输出数量: "))
            (setq pt (getpoint "\n左下角点: "))
         )
    (setq pt1 (mapcar '+ pt '(10 0))
          pt3 (mapcar '+ pt1 '(4 1))
          pt5 (mapcar '+ pt (list (* 24 n) 10))
    )
    (command "_.RECTANG" "non" pt "non" pt5)
    (command "_.RECTANG" "non" pt1 "non" pt3)
    (if (> n 1) (command "_.ARray" "L" "" "R" 1 n 24))
)
(princ)
)

lxdz443 发表于 2015-3-20 07:58:09

本帖最后由 lxdz443 于 2015-3-20 08:42 编辑

谢谢两位老大,两位老大能讲讲程序设计的思路吗?

菜卷鱼 发表于 2015-3-25 13:56:34

给你简单做个动态块就搞定,不要程序
页: [1]
查看完整版本: 求画下面图片里面图形的思路。