虬髯客 发表于 2010-9-15 11:11:00

[求助]列出CAD打开的所有文件

<p>各位帅哥美女,小弟有4个问题想请教大家,期待达人帮忙:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 第1个:列出CAD打开的所有图形文件名。程序目的:下班之前储存所有文件名后,第二天上班可以直接加载所有文件。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 第2个:如何删除文件目录。vl族命令只给出了删除文件和创建文件目录的命令,但我找不到删除文件目录的方法。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 第3个:如何用程序求两条曲线的交点(实体类型为spline或lwpolyline).</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 第4个:有没有曲线的插值程序,即已知曲线上某一点的X值或者Y值,直接用程序得到Y值或X值。</p>
<p>&nbsp;</p>
<p>这些问题已困扰我很久,期待达人帮忙解决问题或者给个方向。</p>

jxphklibin 发表于 2010-9-15 12:33:00

<p>第一个问题:使用<font face="Verdana">(vla-get-documents <font face="Verdana">(vlax-get-acad-object)</font>) <font face="Verdana">得到当前打开的所有文档集合</font></font></p>
<p>其余问题也有解决,可论坛上搜索一下。</p>

虬髯客 发表于 2010-9-15 13:57:00

<p>谢谢楼上的。</p>

虬髯客 发表于 2010-9-15 15:36:00

<p>第一个问题已解决,谢谢2楼的提示,附上代码,期望对有类似疑问的朋友有所帮助。</p>
<p><font face="Verdana">(defun C:test()<br/>&nbsp;(setq dwg_opens(vla-get-documents (vlax-get-acad-object)))<br/>&nbsp;(setq n_opens(vla-get-count dwg_opens))<br/>&nbsp;(setq i 0)<br/>&nbsp;(while (&lt; i n_opens)<br/>&nbsp;&nbsp;(setq dwg_i (vla-item dwg_opens i))<br/>&nbsp;&nbsp;(princ (strcat "\n@@@ " (vla-get-FullName dwg_i)))<br/>&nbsp;&nbsp;(setq i (1+ i))<br/>&nbsp;)<br/>&nbsp;(princ)<br/>)</font></p>

pizg 发表于 2010-9-15 17:17:00

感謝樓主的善心將源碼貼上

lincctw_ccl 发表于 2010-12-16 02:51:25

不錯的構想!!
關於第一個問題!!

xhq1954425 发表于 2010-12-16 07:03:51

好!有用,收藏备用。谢谢!

xyp1964 发表于 2010-12-16 08:20:41

问题4:利用辅助线法求交点

;; Y→X
(defun c:tt ()
(CMDLA0)
(if (setq s1 (car (entsel "\n选择: ")))
    (progn
      (redraw s1 3)
      (while (setq p1 (getpoint "\n基点<退出>: "))
(setq s2(xyp-Add-Xline p1 (xyp-get-Pt2DX p1 10))
       ptn (xyp-get-Inters s1 s2 0)
)
(entdel s2)
(foreach pt ptn
   (xyp-ZB pt 1000 4 nil nil)
)
      )
      (redraw s1 4)
    )
)
(CMDLA1)
)

xyp1964 发表于 2010-12-16 08:26:56

;; X→Y
(defun c:tt ()
(CMDLA0)
(if (setq s1 (car (entsel "\n选择: ")))
    (progn
      (redraw s1 3)
      (while (setq p1 (getpoint "\n基点<退出>: "))
(setq s2(xyp-Add-Xline p1 (xyp-get-Pt2DY p1 10))
       ptn (xyp-get-Inters s1 s2 0)
)
(entdel s2)
(foreach pt ptn
   (xyp-ZB pt 1000 4 nil nil)
)
      )
      (redraw s1 4)
    )
)
(CMDLA1)
)

liminnet 发表于 2010-12-16 09:27:07

页: [1]
查看完整版本: [求助]列出CAD打开的所有文件