明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1179|回复: 1

[提问] action_tile参数问题请教

[复制链接]
发表于 2014-3-8 16:11:03 | 显示全部楼层 |阅读模式
在下面的代码里面(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)
)


本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 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这个选择集里面)。具体改如何定义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-25 09:50 , Processed in 0.165245 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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