明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5655|回复: 17

[★★★]DCL对话框图片制作[★★★]

  [复制链接]
发表于 2008-9-8 15:56:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2008-11-4 22:25:35 编辑

我想在DCL中,添加想要的图片(SLD幻灯文件),怎么做!

比如下面的DCG图案是怎么实现的!

比如我的对话框是这样的:

dcl_settings : default_dcl_settings { audit_level = 3; }

无标题 : dialog {
    : image {
        key = "1";
        width = 18;
        height = 9;
    }
    ok_only;
}

----------------------------------------------

我该如何用lsp来调用事先做好的1.SLD图片

本帖子中包含更多资源

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

x
发表于 2008-9-8 17:43:00 | 显示全部楼层

DCL好像没这个功能吧.

 楼主| 发表于 2008-9-8 22:27:00 | 显示全部楼层

完全可以,就是不知道怎么实现!!我知道的有2种,1是JPG或bmp之类的格式,2是SLD格式。

 楼主| 发表于 2008-9-9 10:26:00 | 显示全部楼层

顶起来,求版主帮忙解决下!等把这个问题解决了,我自己整理的一套工具就可以面世了!

发表于 2008-9-9 10:42:00 | 显示全部楼层

可以用幻灯显示bmp图片,但是显示的速度非常慢,颜色模式也不对。

 楼主| 发表于 2008-9-10 11:49:00 | 显示全部楼层

啊,没有人知道啊

发表于 2008-9-10 23:49:00 | 显示全部楼层
DCL不能显示出jpg图片
opendcl可以
 楼主| 发表于 2008-9-11 14:43:00 | 显示全部楼层
 

影像(image)及影像框(影像區塊,image_block)元件

可以顯示AutoCAD的幻燈片(副檔名為SLD),影像元件只為顯示圖形之用,使用者不能使用滑鼠選取

:image //元件名稱
{     屬性="屬性值" ;
}

屬性
aspect_ratio 固定圖像的長闊比,其設定值為實數,沒有預設值;若設定為0,則元件將依圖像的實際尺寸顯示
color 屬性為整數或保留字,預設值為while(顏色編號7);其它顏色的設定值請參閱第5篇課程

其它屬性
action alignment label key
value width height fixed_width
fixed_heigth mnemonic is_enable is_tab_stop

第2節


AutoLISP函數

在對話框中取得影像框的闊度

  (DIMX_TILE "元件關鍵字")
e.g.        (DIMX_TILE "IMG_L")

MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 元件關鍵字是在元件定義中,以屬性key設定
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 函數的傳回值可作為FILL_IMAGESLIDE_IMAGE函數的參數

在對話框中取得影像框的高度

  (DIMY_TILE "元件關鍵字")
e.g.        (DIMY_TILE "IMG_L")

MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 請參閱DIMX_TILE函數的說明

開始在元件中建立影像

  (START_IMAGE "元件關鍵字")
e.g.        (START_IMAGE "IMG_L")

MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 在使用FILL_IMAGE,SLIDE_IMAGEEND_IMAGE等函數前,必須先執行此函數
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 如果函數成功的話,會傳回指定的關鍵字,否則傳回NIL
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 不要在SET_TILE函數中使用START_IMAGEEND_IMAGE函數

結束元的影像建立

  (END_IMAGE)

MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 不須提供任何參數,必須與SLIDE_IMAGE函數配合使用
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 傳回值永遠是NIL

在影像框中繪製一個填滿的矩形

  (FILL_IMAGEX座標 Y座標 闊度 高度 顏色)
e.g.        (FILL_IMAGE 0 0 闊度變數 高度變數 -2)

MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> X及Y座標為矩形框的左上角位置,必須為正值
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 如果函數成功的話,會傳回指定的關鍵字,否則傳回NIL
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 填滿區域的闊度及高度,以像素為單位,並相對於X及Y座標;闊度一般以DIMX_TILE函數取得,而高度則以DIMY_TILE函數取得
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 傳回值為填滿區域的顏色整數值
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 顏色可以是AutoCAD的顏色號碼,或下列其中一種 :
  -2 BGLCOLOR 目前AutoCAD繪圖螢幕的背景色
-15 DBGLCOLOR 目前對話框的背景色
-16 DBGLCOLOR 目前對話框的前景色(文字)
-18 DBGLCOLOR 目前對話框中線條的顏色

在元件中顯示幻燈片

  (SLIDE_IMAGEX座標 Y座標 闊度 高度 幻燈片檔案名稱)
e.g.        (SLIDE_IMAGE 0 0 闊度變數 高度變數 "C:/IMG1.SLD")

MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> X及Y座標,高度及闊度,請參閱上一個函數FILL_IMAGE的說明
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 傳回值為指定的幻燈片檔案名稱


AutoLISP函數

在對話框中取得影像框的闊度

  (DIMX_TILE "元件關鍵字")
e.g.        (DIMX_TILE "IMG_L")

MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 元件關鍵字是在元件定義中,以屬性key設定
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 函數的傳回值可作為FILL_IMAGESLIDE_IMAGE函數的參數

在對話框中取得影像框的高度

  (DIMY_TILE "元件關鍵字")
e.g.        (DIMY_TILE "IMG_L")

MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 請參閱DIMX_TILE函數的說明

開始在元件中建立影像

  (START_IMAGE "元件關鍵字")
e.g.        (START_IMAGE "IMG_L")

MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 在使用FILL_IMAGE,SLIDE_IMAGEEND_IMAGE等函數前,必須先執行此函數
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 如果函數成功的話,會傳回指定的關鍵字,否則傳回NIL
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 不要在SET_TILE函數中使用START_IMAGEEND_IMAGE函數

結束元的影像建立

  (END_IMAGE)

MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 不須提供任何參數,必須與SLIDE_IMAGE函數配合使用
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 傳回值永遠是NIL

在影像框中繪製一個填滿的矩形

  (FILL_IMAGEX座標 Y座標 闊度 高度 顏色)
e.g.        (FILL_IMAGE 0 0 闊度變數 高度變數 -2)

MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> X及Y座標為矩形框的左上角位置,必須為正值
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 如果函數成功的話,會傳回指定的關鍵字,否則傳回NIL
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 填滿區域的闊度及高度,以像素為單位,並相對於X及Y座標;闊度一般以DIMX_TILE函數取得,而高度則以DIMY_TILE函數取得
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 傳回值為填滿區域的顏色整數值
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 顏色可以是AutoCAD的顏色號碼,或下列其中一種 :
  -2 BGLCOLOR 目前AutoCAD繪圖螢幕的背景色
-15 DBGLCOLOR 目前對話框的背景色
-16 DBGLCOLOR 目前對話框的前景色(文字)
-18 DBGLCOLOR 目前對話框中線條的顏色

在元件中顯示幻燈片

  (SLIDE_IMAGEX座標 Y座標 闊度 高度 幻燈片檔案名稱)
e.g.        (SLIDE_IMAGE 0 0 闊度變數 高度變數 "C:/IMG1.SLD")

MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> X及Y座標,高度及闊度,請參閱上一個函數FILL_IMAGE的說明
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/> 傳回值為指定的幻燈片檔案名稱

第3節


練習 (Exercises)

建立新的對話框IMG1.DCL,存在於C盤的根目錄中;在對話框中只會顯示兩個影像及一個確定鈕,其定義如下:

IMG:dialog
{ label="Image" ;
:row //建立橫列元件
{ :image //建立影像元件
{ key="IMG_L" ;
width=15;
height=6;
color=-2;
}
:image //建立影像元件
{ key="IMG_R" ;
width=15;
height=6;
color=-2;
}
} //關閉橫列元件
ok_only;
}

定義說明:
1 設定對話框名稱為IMG,以冒號開始設定dialog元件
2 開大括號屬於上一行的dialog元件,屬性label的設定值會顯示在對話框的標題列
3 冒號開始,設定一個橫列元件row,使包含其中的其它元件呈水平排列
4 開大括號屬於上一行的橫列元件,以冒號開始,設定第一個影像元件image
5 開大括號屬於上一行的影像元件,以key屬性,設定影像元件的操作關鍵字(IMG_L)
6,7 設定影像元件的闊度(屬性width)及高度(屬性height)
8 設定影像元件的顏色屬性color為-2,表示以繪圖螢幕的背景色顯示
9 關大括號是對應第5行的開大括號,此對大括號同屬於第4行的影像元件
10至15 用第4至第9行類似的設定,定義第二個影像元件,其key屬性設定為IMG_R(關鍵字)
16 關大括號是對應第4行的開大括號,此對大括號同屬於第3行的橫列元件
17 定義一個確定鈕,以結束對話方塊
18 關大括號是對應第2行的開大括號,此對大括號同屬於第1行的dialog元件

MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dl-11a.gif" alt=""/>

MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dl-11a.gif" alt=""/>

建立新的程式檔IMG1.LSP,主程式用作啟動對話框,輔助程式則處理影像;其程式碼如下:

(DEFUN C:IMG() (SETQ DCL_ID (LOAD_DIALOG "C:/IMG1.DCL"))
(NEW_DIALOG &uqotIMG" DCL_ID)
(S_IMG "IMG_L")
(S_IMG "IMG_R")
(START_DIALOG)(UNLOAD_DIALOG DCL_ID)
(PRINC))

(DEFUN S_IMG(KEY) (COND ((= KEY "IMG_L") (SETQ SLD "C:/IMG1.SLD"))
  ((= KEY "IMG_R") (SETQ SLD "C:/IMG2.SLD")))
(SETQ TMP_X (DIMX_TILE KEY) TMP_Y (DIMY_TILE KEY))
(START_IMAGE KEY)
(FILL_IMAGE 0 0 TMP_X TMP_Y -2)
(SLIDE_IMAGE 0 0 TMP_X TMP_Y SLD)
(END_IMAGE))


練習 (Exercises)

建立新的對話框IMG1.DCL,存在於C盤的根目錄中;在對話框中只會顯示兩個影像及一個確定鈕,其定義如下:

IMG:dialog
{ label="Image" ;
:row //建立橫列元件
{ :image //建立影像元件
{ key="IMG_L" ;
width=15;
height=6;
color=-2;
}
:image //建立影像元件
{ key="IMG_R" ;
width=15;
height=6;
color=-2;
}
} //關閉橫列元件
ok_only;
}

定義說明:
1 設定對話框名稱為IMG,以冒號開始設定dialog元件
2 開大括號屬於上一行的dialog元件,屬性label的設定值會顯示在對話框的標題列
3 冒號開始,設定一個橫列元件row,使包含其中的其它元件呈水平排列
4 開大括號屬於上一行的橫列元件,以冒號開始,設定第一個影像元件image
5 開大括號屬於上一行的影像元件,以key屬性,設定影像元件的操作關鍵字(IMG_L)
6,7 設定影像元件的闊度(屬性width)及高度(屬性height)
8 設定影像元件的顏色屬性color為-2,表示以繪圖螢幕的背景色顯示
9 關大括號是對應第5行的開大括號,此對大括號同屬於第4行的影像元件
10至15 用第4至第9行類似的設定,定義第二個影像元件,其key屬性設定為IMG_R(關鍵字)
16 關大括號是對應第4行的開大括號,此對大括號同屬於第3行的橫列元件
17 定義一個確定鈕,以結束對話方塊
18 關大括號是對應第2行的開大括號,此對大括號同屬於第1行的dialog元件

MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dl-11a.gif" alt=""/>

MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dl-11a.gif" alt=""/>

建立新的程式檔IMG1.LSP,主程式用作啟動對話框,輔助程式則處理影像;其程式碼如下:

(DEFUN C:IMG() (SETQ DCL_ID (LOAD_DIALOG "C:/IMG1.DCL"))
(NEW_DIALOG &uqotIMG" DCL_ID)
(S_IMG "IMG_L")
(S_IMG "IMG_R")
(START_DIALOG)(UNLOAD_DIALOG DCL_ID)
(PRINC))

(DEFUN S_IMG(KEY) (COND ((= KEY "IMG_L") (SETQ SLD "C:/IMG1.SLD"))
  ((= KEY "IMG_R") (SETQ SLD "C:/IMG2.SLD")))
(SETQ TMP_X (DIMX_TILE KEY) TMP_Y (DIMY_TILE KEY))
(START_IMAGE KEY)
(FILL_IMAGE 0 0 TMP_X TMP_Y -2)
(SLIDE_IMAGE 0 0 TMP_X TMP_Y SLD)
(END_IMAGE))

发表于 2008-9-11 14:52:00 | 显示全部楼层

  (start_image \"img\")
  (fill_image 0 0 width1 height1 -2)
  (slide_image 0 0 width1 height1 \"sld\")
  (end_image)

sld幻灯片名

 楼主| 发表于 2008-11-4 22:28:00 | 显示全部楼层
各位大哥帮帮我吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-21 14:32 , Processed in 0.246421 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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