hbird 发表于 2008-5-14 11:18:00

请问如何创建sld文件?

使用mslide命令只能创建当前视口的快照 , 是否有方法可以生成指定范围的sld文件呢?谢谢了

Z962553183 发表于 2019-7-20 14:46:45

08年的问题,2019现在还没解决吗?同求

zhangqi1991 发表于 2019-8-22 13:40:04

做图库用

写不完的日记 发表于 2025-5-4 16:52:27

这个用ai写的不知道现在给你回复了你还用不用这个功能,估计也是人走茶凉了(defun c:sld (/ ss pt1 pt2 sld_file_name desktop_path full_path)
    ;; 提示用户指定框选的第一个角点
    (setq pt1 (getpoint "\n指定框选的第一个角点: "))
    (if (not pt1)
      (progn
            (princ "\n操作取消。")
            (exit)
      )
    )
    ;; 提示用户指定框选的第二个角点
    (setq pt2 (getpoint pt1 "\n指定框选的第二个角点: "))
    (if (not pt2)
      (progn
            (princ "\n操作取消。")
            (exit)
      )
    )
    ;; 使用 W 窗口选择方式选择框选范围内的对象
    (setq ss (ssget "W" pt1 pt2))
    (if (not ss)
      (progn
            (princ "\n未选择到任何对象。")
            (exit)
      )
    )
    ;; 提示用户输入要保存的 SLD 文件名称
    (setq sld_file_name (getstring t "\n输入要保存的 SLD 文件名称 (无需扩展名): "))
    ;; 检查输入的文件名是否为空
    (if (or (eq sld_file_name nil) (zerop (strlen sld_file_name)))
      (progn
            (princ "\n未输入有效的文件名,操作取消。")
            (exit)
      )
    )
    ;; 获取桌面路径
    (setq desktop_path (strcat (getenv "USERPROFILE") "\\Desktop\\"))
    ;; 拼接完整的文件路径
    (setq full_path (strcat desktop_path sld_file_name ".sld"))
    ;; 保存当前视图
    (command "._zoom" "w" pt1 pt2)
    ;; 执行 MSLIDE 命令保存为 SLD 文件
    (command "._mslide" full_path)
    (princ (strcat "\n已将框选范围内的图形保存为 " full_path " 文件。"))
    (princ)
)

(princ "\n函数 c:sld 已加载。")
(princ)   
页: [1]
查看完整版本: 请问如何创建sld文件?