明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1063|回复: 9

如何能实现点选右边的列表选项,左侧的预览图片也跟着变化,最好是不使用幻灯片。...

[复制链接]
发表于 2022-4-10 14:05:38 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-4-11 08:30:42 | 显示全部楼层
同问,等待高手
发表于 2022-5-2 17:01:58 | 显示全部楼层

      ((= key "List1")                ; {} (普通列表)
         (setq sld (nth (read value) slds))
         (setq dwg (strcat default_path (vl-filename-base sld) ".dwg"))
        )
改为如下一试:
((= key "List1")               
         (setq sld (nth (read value) slds))
         (setq dwg (strcat default_path sld))
         (start_image "Image1")  
         (fill_image 0 0 (dimx_tile "Image1") (dimy_tile "Image1") 0)
         (slide_image
               0
               0
               (dimx_tile "Image1")
               (dimy_tile "Image1")
               dwg
         )                                    
         (end_image)
      )
 楼主| 发表于 2022-5-3 22:58:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2022-5-3 23:00:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-5-3 23:22:57 | 显示全部楼层
好像还是不行

幻灯片文件生成了没有?
还有前面这行:(setq slds (vl-directory-files default_path "*.dwg" 1))
也要改为:(setq slds (vl-directory-files default_path "*.sld" 1))
 楼主| 发表于 2022-5-5 12:40:07 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-5-5 12:48:47 | 显示全部楼层
将.dwg替换为.sld
 楼主| 发表于 2022-5-5 17:57:54 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-5-5 20:44:51 | 显示全部楼层
(defun c:fx1 ()
   (defun show-sld()
       (start_image "Image1")
       (fill_image 0 0 (dimx_tile "Image1") (dimy_tile "Image1") 0)
       (slide_image
           0
           0
           (dimx_tile "Image1")
           (dimy_tile "Image1")
           ;dwg
           sld
       )
      (end_image)
   )
  
  (setvar "cmdecho" 0)
  (vl-load-com)
;;;  (setq        dcl_id (load_dialog
;;;                 "C:\\Program Files\\AutoCAD 2010\\Support\\FX.dcl"
;;;               )
;;;  )                                        ;对话框加载
  (make_FX_dcl) ;;生成对话框
  (setq default_path "C:\\Program Files\\AutoCAD 2010\\Support\\")
  (setq slds (vl-directory-files default_path "*.sld" 1))
  (setq Dialog_Return 2)
  (while (> Dialog_Return 1)                ;循环控制对话框是否结束

    (defun Action_Form1_Keys (key value) ;全部控件的点击动作触发
      (cond
        ((= key "accept")                ;{确认按钮}

         (done_dialog 1)                ;对话框退出返回主函数 传递给Dialog_Return值为1
        )
        ((= key "cancel")                ;{取消按钮}

         (done_dialog 0)                ;对话框退出返回主函数 传递给Dialog_Return值为0
        )
        ((= key "List1")
         ;(setq sld (nth (read value) slds))
         ;(setq dwg (strcat default_path sld))
         (setq sld (strcat default_path (nth (read value) slds)))
         (setq dwg (vl-string-subst ".dwg" ".sld" sld))
         (show-sld)
        )

      )
    )

    (new_dialog "FX" dcl_id)                ;建立窗体
                                        ;-->-->-对话框初始化->-->--
    (setq
      keys '("List1" "Image1" "accept" "cancel")
    )                                        ;列表全部控件名称

    (start_list "List1")                ;直列表 {"List1"} 初始化
    (mapcar 'add_list  slds)                ;添加列表项
    (end_list)
    (set_tile "List1" "0")
   
    (setq sld (strcat default_path (car slds)))
    (show-sld)
   
    (foreach key keys                        ;全部控件的初始化
      (action_tile key "(Action_Form1_Keys $key $value)") ;点击动作
    )

                                        ;--<--<-对话框初始化完成-<--<--
    (setq Dialog_Return (start_dialog))        ;开启对话框(用户可见)
    (cond
      ((= Dialog_Return 1)
       (setq pt (getpoint "\n请选择插入点"))
       (if pt
         (command "Insert" dwg Pt "1" "1" PAUSE)
       )
      )
    )
    (unload_dialog dcl_id)                ;退出时卸载对话框
    (princ)                                ;防止函数回显
  )
  (setvar "cmdecho" 1)
  (princ)
)
; ;; 采用临时文件生成DCL对话框
(defun make_FX_dcl()
    (setq dclfile (vl-filename-mktemp nil nil ".dcl")
          fff (open dclfile "w")
    )
    (foreach str
             (list
                "FX:dialog {"
                "    label = \" 标准紧固件\" ;"
                "    :spacer {}"
                "    :row {"
                "           :boxed_column {"
                "               label = \"图像预览\" ;"
                "               :image {"
                "                        alignment = centered ;"
                "                        color = black ;"
                "                        fixed_height = true ;"
                "                        height = 12 ;"
                "                        key = \"Image1\" ;"
                "                        width = 25 ;"
                "                }"
                "           }"
                "           :boxed_column {"
                "               label = \"单选列表\" ;"
                "               :list_box {"
                "                        fixed_height = true ;"
                "                        height = 13 ;"
                "                        key = \"List1\" ;"
                "                        width = 30 ;"
                "               }"
                "               :spacer {}"
                "           }"
                "    }"
                "    :spacer {}"
                "    :image {"
                "        color = red ;"
                "        height = 0.2 ;"
                "    }"
                "    :spacer {}"
                "    :row {"
                "          alignment = centered ;"
                "          :text {"
                "                  label = \"  \" ;"
                "          }"
                "          ok_cancel;"
                "    }"
                "}"
             )
             (write-line str fff)
    )
    (close fff)
    (setq dcl_id (load_dialog dclfile))
    (vl-file-delete dclfile)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 09:44 , Processed in 0.184933 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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