以梦为马,不负韶华

搜索
查看: 5430|回复: 0
收起左侧

请教Autolisp一个小问题

[复制链接]
发表于 2013-10-25 09:29:58 显示全部楼层 |阅读模式
本帖最后由 LM大亨 于 2013-10-25 10:13 编辑

最近学习Autolisp语言,试画一条线,然后修改这条线的属性,如层、线型及宽度等,用命令 (command "change" en "" "p" "LA"  "工艺管线"  ""  "LT"  "continuous"  ""  "LW"  "0.7"  ""),可是运行时,只能改图层,后面的属性就出错了,说是“LT”未知命令等。在我看来,是change命令没有执行下去。请教高手,这句有什么错误?该 如何修改呢?
原程序如下:
;;画主工艺管线
(defun mainline()
      (setvar "blipmode" 0)
      (setvar "cmdecho" 0)
      (command "osmode" 15359)
      (setq sp (getpoint"\n起始点:"))
      (setq x 0)
      (while (< x 3)
             (setq ep (getpoint sp "\n到点:"))
             (if (= ep nil) (setq x 5))
             (if (/= ep nil)
                 (progn
                    (command "line" sp ep "")
                    (setq en (entlast))
                    (setq ed (entget en))
                    (setq sp (cdr (assoc 10 ed)))
                    (setq ep (cdr (assoc 11 ed)))
                    (setq hxd (distance sp ep))
                    (command "change" en "" "p" "LA"  "工艺管线"  ""  "LT"  "continuous"  ""  "LW"  "0.7"  "")
                    (setq sp (list (car ep) (cadr ep)))
                 )  ;;;progn
              )   ;;;if
        )   ;;;while

        (princ)
)
(defun C:hx_mline  () (mainline))
调试已经通过了,错误在(command "change" en "" "p" "LA" "工艺管线" "" "LT" "continuous" "" "LW" 0.7  "" "")这句中多了几个双引号,改成(command "change" en "" "p" "LA" "工艺管线" "LT" "continuous" "LW" 0.7  "")就好了。
但是又有一个新问题来了,这个小程序 只是画了一种线,我想再画另外的线,比如说,仪表信号线,把这个程序复制,修改了定义的命令,里面的参数没动,执行的时候却找不到自定义的命令。这该如何修改?还是分成两个小的LISP程序分别加载?


评分

参与人数 1韶华币 +1 收起 理由
hanpingsiping + 1

查看全部评分

发表于 2013-10-25 09:29:58 显示全部楼层
EN是什么变量啊
回复 支持 反对

使用道具 举报

发表于 2013-10-25 09:29:58 显示全部楼层
你想画一条直线,开始时直接定义改线的图层,线性,宽度即可。如
(command "layer" "m" "工艺管道" "s" "工艺管道" "lt" "continuous" "" "c" "white" "" "" )
回复 支持 反对

使用道具 举报

发表于 2013-10-25 09:29:58 显示全部楼层
;存为tt.txt
(defun c:t1()
  (princ "t1")
)

(defun c:t2()
  (princ "t2")
)
;cad命令行加载:(load "tt") 即可。

点评

谢谢,我试试看  详情 回复 发表于 2013-10-25 11:31
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-25 09:29:58 显示全部楼层
fl202 发表于 2013-10-25 11:22
;存为tt.txt
(defun c:t1()
  (princ "t1")

谢谢,我试试看
回复 支持 反对

使用道具 举报

不想打字就选择快捷回复吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|以梦为马,不负韶华

GMT+8, 2025-4-5 23:17

Powered by 以梦为马,不负韶华

© 2024-2099 Meng.Horse

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