lxdz443 发表于 2014-3-8 16:11:03

action_tile参数问题请教

在下面的代码里面(action_tile "新建三角电杆引上管" "(setq ddtype 1) (ok_gan)")这行里面最后的(ok_gan)这个是什么意思,有什么用处,我查看了action_tile的参数没有发现具体什么意思。
(setq dir_lisp "d:\\autolisp\\")这一句如何改为相对位置。也就是说我可以把autolisp这个文件夹拷贝到任何位置,程序都可以正常使用。
下面的程序里面如何调用幻灯片库里面的幻灯片,我现在是把幻灯片做成单个的,放到一个文件夹里面,我想把幻灯片放到一个库里面,可以就不知道如何调用了。
在画图的时候,下面的程序显示不出来图块,如何能改为显示出来图块的那种。
下面是源文件:
(defun c:3()
        (setq cmdmode (getvar "cmdecho"))
        (setvar "cmdecho" 0)
        ;(if (= dir_lisp nil)
                ;(command "insert" "d:\\autolisp\\lispblock" '(quit)))
        (setq dir_lisp "d:\\autolisp\\")
        (dcl_gan)
        (prin1)
)
(defun dcl_gan()
        (setq dcl_id (load_dialog (strcat dir_lisp "dcl\\gan")))
        (new_dialog "gan" dcl_id)
        (def_gan)
        (action_tile "新建三角电杆引上管" "(setq ddtype 1) (ok_gan)")
        (action_tile "原有三角电杆引上管" "(setq ddtype 2) (ok_gan)")
    (action_tile "新建圆形电杆引上管" "(setq ddtype 3) (ok_gan)")
        (action_tile "原有圆形电杆引上管" "(setq ddtype 4) (ok_gan)")
        (action_tile "新设预留" "(setq ddtype 5) (ok_gan)")
        (action_tile "accept" "(ok_gan)")
        (setq dd (start_dialog))
        (if (= dd 1) (draw_gan))

)
(defun def_gan()
        (if (= bl_gan nil)
        (set_tile "bili" "1")
        (set_tile "bili" (rtos bl_gan)))
        (setq sldkey_list '("新建三角电杆引上管" "原有三角电杆引上管" "新建圆形电杆引上管" "原有圆形电杆引上管" "新设预留"))
        (setq sld_list '("新建三角电杆引上管" "原有三角电杆引上管" "新建圆形电杆引上管" "原有圆形电杆引上管" "新设预留"))
        (mapcar 'show_sld sldkey_list sld_list)
        (setq ddtype 1)
        (mode_tile "xjsjys" 1)
)


(defun show_sld(key sld)
        (setq x (dimx_tile key))
        (setq y (dimy_tile key))
        (start_image key)
        (fill_image 0 0 x y -2)
        (slide_image 0 0 x y (strcat dir_lisp "sld\\" sld))
        (end_image)
)
(defun ok_gan()
        (setq bl_gan (atof (get_tile "bili")))
        (done_dialog 1)
)

(defun draw_gan()
        (setvar "cmdecho" 0)
        (command "layer" "s" "0" "")
        (setq pt0 (getpoint "\n 请输入插入点:"))
      (setq pt0 (list (car pt0) ( cadr pt0)))
        (setq r0 (/ (* (getangle pt0 "\n 请输入旋转角度值:") 180) pi))
      (cond ((= ddtype 1) (command "insert" "新建三角电杆引上管" "x" bl_gan "y" bl_gan "r" r0 pt0))
              ((= ddtype 2) (command "insert" "原有三角电杆引上管" "x" bl_gan "y" bl_gan "r" r0 pt0))
              ((= ddtype 3) (command "insert" "新建圆形电杆引上管" "x" bl_gan "y" bl_gan "r" r0 pt0))
            ((= ddtype 4) (command "insert" "原有圆形电杆引上管" "x" bl_gan "y" bl_gan "r" r0 pt0))
              ((= ddtype 5) (command "insert" "新设预留" "x" bl_gan "y" bl_gan "r" r0 pt0))
       )
        (draw_gan)
        (setvar "CMDECHO" cmdmode)
        (prin1)
)


lxdz443 发表于 2014-3-8 16:14:42

本帖最后由 lxdz443 于 2014-3-8 16:21 编辑

我把 ((= ddtype 1) (command "insert" "新建三角电杆引上管" "x" bl_gan "y" bl_gan "r" r0 pt0))修改为
    ((= ddtype 1) (command "insert" "新建三角电杆引上管" "x" bl_gan "y" bl_gan "s" "1" ))   后画图的时候倒是能显示出来了,可是比例又不管用了。郁闷
我想把这几个引上管放到ganxin这个选择集里面,改如何操作,(这里的选择集不是lsp里面的选择集,是我自己定义的一个就是把相关类型的放到一个定义集里面,在别的程序里面就好定义判断,比如电杆分为水泥杆,木杆,铁杆等都划分到ganxin这个选择集里面)。具体改如何定义。
页: [1]
查看完整版本: action_tile参数问题请教