如何获取spline与1000条直线交点坐标值?
我画了一条spline(方程未知),现在我画出了1000条竖直线,每条直线与我画的spline仅有一个交点!<br/>所以能得到1000个交点。那么如何将这1000个点的值提取出来放到txt文件中呢?或者其他文件中呢!<br/>因为我很急需!<br/>(当然我1000条直线可能还不够,所以不希望自己一个一个来扑捉!故请各位指点!)<br/><br/> 想到的笨办法:用多段线沿每个交叉点画线,画完后,用list命令就可以显示出坐标了,然后复制到word进行编辑,做成表格什么的。(vl-load-com)
(defun c:test (/ i j file ent spl sel ptl pts)
(setq j 1)
(if (setq file (getfiled "存储文件" "c:/" "txt" 1))
(progn
(setq file (open file "A"))
(while (and (setq ent (car (entsel "\n请选取spline线: ")))
(Setq spl (vlax-ename->vla-object ent))
(setq sel (ssget '((0 . "LINE"))))
)
(setq i 0)
(setq ptl nil)
(princ (strcat "\n第" (itoa j) "根spline线的数据:") file)
(repeat (sslength sel)
(setq obj (vlax-ename->vla-object (ssname sel i)))
(if (Setq pts (vlax-invoke spl 'Intersectwith Obj Acextendnone))
(progn
(setq ptl (cons (list (car pts) (cadr pts) (caddr pts)) ptl))
(princ "\n" file)
(princ pts file)
)
)
(setq i (1+ i))
)
(setq j (1+ j))
)
(close file)
ptl
)
)
)
加载上面的程序运行命令: test
然后选择线段,先选择spline线,然后选择直线,就能完成你说的1000个交点,甚至1000000个也可以。
命令能够连续使用。
<p>下面的为可以控制精度的。我这里设定为小数点后8位,你可以把8改称你想要的精度</p> <p>多謝樓上</p><p>好東西收下啦</p> <font face="Verdana" color="#da2549"><b>谢谢大家的帮助!<br/></b></font><font face="Verdana" color="#da2549"><b>谢谢highflybir</b></font><br/><font face="Verdana" color="#da2549"><b> 你们给出的程序怎样在cad里使用呀!能说具体点么?<br/>谢谢因为我很菜!<br/></b></font> <p></p><p>这个是录像文件,可以先运行命令ap 或者从菜单中选择-“工具”-“加载应用程序”,然后找到你下载的那个1000spline-line.lsp的文件,加载运行即可。</p> highflybir 发表于 2007-8-20 16:37 static/image/common/back.gif
这个是录像文件,可以先运行命令ap 或者从菜单中选择-“工具”-“加载应用程序”,然后找到你下载的那个100 ...
老师,为什么昨天还能用,今天就不行了啊
选择spline后,出现这个啊:
选取spline线: ; 错误: no function definition: VLAX-ENAME->VLA-OBJECT 雨行龙 发表于 2012-3-15 17:41 static/image/common/back.gif
老师,为什么昨天还能用,今天就不行了啊
选择spline后,出现这个啊:
选取spline线: ; 错误: no funct ...
应是漏了 (vl-load-com) highflybir 发表于 2007-8-20 16:37 static/image/common/back.gif
这个是录像文件,可以先运行命令ap 或者从菜单中选择-“工具”-“加载应用程序”,然后找到你下载的那个100 ...
老师,我这个为什么显示是错误的?------错误: 参数类型错误: FILE nil
页:
[1]
2