找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1242|回复: 2

[LISP程序]:请问我的程序的问题在那?(见内)

[复制链接]
发表于 2002-2-19 14:46:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
(DEFUN C:FF ()
   (SETQ P1 (LIST 1 -1))
   (SETQ P2 (LIST 2 3))
   (SETQ P3 (LIST 4 6))
   (SETQ P5 (LIST 4 -3))
   (SETQ P6 (LIST 5 8))
   (SETQ P7 (LIST 7 -9))
   (SETQ P8 (LIST 10 1))
   (SETQ P9 (LIST 12 -7))
   (SETQ P10 (LIST 17 9))

(SETQ PLIST '(P1 P2 P3 P5 P6 P7 P8 P9 P10))
(APPLY 'COMMAND (CONS "PLINE" PLIST))

);;END DEFUN
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2002-2-19 17:56:28 | 显示全部楼层
(setq plist '(p1 p2 p3 p5 p7 p8 p9 p10)) 返回值为 (p1 p2 p3 p5 p7 p8 p9 p10)而不是点表,这里应该用list。
另外apply应该再加一个(command "")退出pline命令。

  1. 1. list

  2. 将任意数目的表达式组合成一个表
  3. (list [expr...])

  4. 本函数常用于定义二维或三维点变量(由两个或三个实数组成的表)。

  5. 参数

  6. expr

  7. AutoLISP 表达式。

  8. 返回值

  9. 表。如果未提供表达式,则 list 返回 nil。

  10. 样例

  11. 命令:(list 'a 'b 'c)

  12. (A B C)

  13. 命令:(list 'a '(b c) 'd)

  14. (A (B C) D)

  15. 命令:(list 3.9 6.7)

  16. (3.9 6.7)

  17. 如果表中没有变量和未定义的项,还可以用 quote 函数显式引用一个表,这和调用 list 函数效果相同。
  18. 单引号 ( ' ) 被定义为 quote 函数。

  19. 命令:'(3.9 6.7)              等于  (list 3.9 6.7)

  20. 这对创建关联表和定义点来说很有用。

  21. 2. command
  22. 执行一条 AutoCAD 命令
  23. (command [arguments] ...)

  24. 参数

  25. arguments

  26. AutoCAD 命令、选项或表达式。
  27. command 函数的参数可以是字符串、实数、整数或点,但必须与要执行的命令所需的参数一致。空字符串 ("") 表示从键盘键入 ENTER 键。
  28. 不带参数调用 command 相当于键入 ESC 键,这样可取消大多数 AutoCAD 命令。

  29. command 函数将每一个参数顺序传给 AutoCAD 以响应提示。它以字符串形式提交命令名和选项;以两个实数组成的表的形式提交二维点;
  30. 以三个实数组成的表的形式提交三维点。只有在命令提示下 AutoCAD 才能识别命令名。
  31. 要注意的是,如果从 Visual LISP 中使用 command 函数,控制并不会转移到 AutoCAD 中。如果命令要求用户输入,则可以在控制台窗口
  32. 中看到返回结果 (nil),但 AutoCAD 将等待输入,必须手动激活 AutoCAD 并响应提示。在这样做以前,任何后续命令都会失败。

  33. 返回值

  34. nil
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8个

财富等级: 恭喜发财

发表于 2002-2-20 12:08:48 | 显示全部楼层
转mjtd的多义线
;;(defun c:entmakelwpoly (/ vlist elist lay col wdt pt)                                        ;vertex list
(defun ent(Vlist LAY COL MDT  / elist  pt)                                        ;vertex list
;;  (Setq vlist '((50 50) (150 50) (150 150) (50 150)))
  ;Vlist__点的表,为世界坐标
  ;lay__层名
  ;col__实体颜号.256号颜色是随层的颜色
  ;mdt__实体线宽.
  (setq elist '())
;;  (setq lay "0")  (setq col 2)  (setq wdt 2.0)
  (setq        elist (append elist
                      (list
                        (cons 0 "LWPOLYLINE")
                        (cons 100 "AcDbEntity")
                        (cons 67 0)
                        (cons 62 col)
                        (cons 410 "Model")
                        (cons 8 lay)
                        (cons 100 "AcDbPolyline")
                        (cons 90 (length vlist))
                        (cons 70 1)
                        (cons 43 mdt)
                        (cons 38 0.0)
                        (cons 39 0.0)
                      )
              )
  )

  (foreach pt vlist
    (setq elist        (append        elist
                        (list
                          (cons 10 pt)
                          (cons 40 2.0)
                          (cons 41 2.0)
                          (cons 42 0.0)
                        )
                )
    )
  )

  (setq elist (append elist (list (list 210 0.0 0.0 1.0))))
  (entmake elist)

  (princ)
)

(DEFUN C:CZ()
  (setq lls (list p1 p2 p3 p4))
  (ENT lls "1" 256 0)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-5 02:50 , Processed in 0.414671 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表