citykunan 发表于 2005-1-28 15:33:00

[分享]将图层信息写到网页上

(defun C:DUMPLAYERS<BR>       ( / acad doc dwg layers name col ltp lwt pst onoff frz dat<BR>                                       path olist outfile output)<BR>       (vl-load-com)<BR>       (setq acad               (vlax-get-acad-object)<BR>                                                       doc                       (vla-get-activedocument acad)<BR>                                                       dwg                       (vla-get-name doc)<BR>                                                       path               (vla-get-path doc)<BR>                                                       layers (vla-get-layers doc)<BR>       )<BR>       (vlax-for each layers<BR>                       (setq name       (vla-get-name each)<BR>                                                                       col               (itoa (vla-get-color each))<BR>                                                                       ltp               (vla-get-linetype each)<BR>                                                                       lwt               (itoa (vla-get-lineweight each))<BR>                                                                       pst               (vla-get-plotstylename each)<BR>                                                                       onoff (if (= :vlax-true (vla-get-layeron each))<BR>                                                                                                                                       "ON" "OFF"<BR>                                                                                                                       )<BR>                                                                       frz               (if (= :vlax-true (vla-get-freeze each))<BR>                                                                                                                                       "FROZEN" "THAWED"<BR>                                                                                                                       )<BR>                                                                       dat               (list name col ltp lwt pst onoff frz)<BR>                                                                       olist (cons dat olist)<BR>                       )<BR>       ); vlax-for


       (vlax-release-object layers)<BR>       (vlax-release-object doc)<BR>       (vlax-release-object acad)<BR>       (cond<BR>                       ( olist<BR>                                       (setq outfile (strcat (vl-filename-base dwg) ".htm"))<BR>                                       (setq outfile (strcat path outfile))<BR>                                       (cond<BR>                                                       ( (setq output (open outfile "w"))<BR>                                                                       (write-line "&lt;html&gt;" output)<BR>                                                                       (write-line "&lt;head&gt;&lt;title&gt;" output)<BR>                                                                       (write-line (strcat "Layer Dump: " dwg) output)<BR>                                                                       (write-line "&lt;/title&gt;&lt;/head&gt;&lt;body&gt;" output)<BR>                                                                       (write-line (strcat "&lt;b&gt;Drawing: " dwg "&lt;/b&gt;&lt;br&gt;") output)<BR>                                                                       (write-line "&lt;table border=1&gt;" output)<BR>                                                                       (foreach layset olist<BR>                                                                                       (write-line "&lt;tr&gt;" output)<BR>                                                                                       (foreach prop layset<BR>                                                                                                       (write-line (strcat "&lt;td&gt;" prop "&lt;/td&gt;") output)<BR>                                                                                       )<BR>                                                                                       (write-line "&lt;/tr&gt;" output)<BR>                                                                       ); foreach layer set<BR>                                                                       (write-line "&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;" output)<BR>                                                                       (close output)<BR>                                                                       (setq output nil)<BR>                                                                       (princ "\nReport finished! Opening in browser...")<BR>                                                                       (vl-cmdf "_.browser" outfile)<BR>                                                       )<BR>                                                       ( T (princ "\nUnable to open output file.") )<BR>                                       )<BR>                       )<BR>                       ( T (princ "\nUnable to get layer table information.") )<BR>       )<BR>)<BR>

alin 发表于 2005-1-28 21:07:00

David Stein        写过一个差不多的程序, 后来AfraLisp引用过.
页: [1]
查看完整版本: [分享]将图层信息写到网页上