已知半径,求作过一点和一直线相切的圆?
已知一点,半径,切线,求作圆~~~~如果可以的话,求作与两条曲线相切,半径已知的圆 ttr方式 (defun c:ac(/ point p1 p2 line r ci li obj1 obj2 ints lst-u-bound cp)
(setq point (getpoint "\n请输入点:"))
(command "point" point)
(setq p1 (getpoint"\n画直线:")
p2 (getpoint p1))
(command "line" p1 p2 "")
(setq line (entlast))
(setq r (getreal "\n请输入半径:"))
(command "circle" point r)
(setq ci (entlast))
(command "offset" r line point "")
(setq li (entlast))
(setq obj1 (vlax-ename->vla-object li))
(setq obj2 (vlax-ename->vla-object ci))
(setq ints (vlax-invoke-method obj1 'intersectwith obj2 0))
(if (/= ints nil)
(progn
(setq lst-u-bound (vlax-safearray-get-u-bound (vlax-variant-value ints)1))
(if lst-u-bound
(setq ints (vlax-safearray->list (vlax-variant-value ints))))
)
(quit)
)
(setq cp (list (car ints) (cadr ints) (caddr ints)))
(command "erase" ci "")
(command "erase" li "")
(command "circle" cp r)
(princ)
)
Saging 发表于 2012-4-14 23:01
(defun c:ac(/ point p1 p2 line r ci li obj1 obj2 ints lst-u-bound cp)
(setq point (getpoint "\n请 ...
谢谢啦,这么晚还帮忙写程序,真太感谢了。。
二楼还有个程序,如果高手们空闲时候,希望能帮忙写一下。。。 楼主的问题用cad命令实现更简单。二楼的问题已在三楼回答 cabinsummer 发表于 2012-4-15 06:39
楼主的问题用cad命令实现更简单。二楼的问题已在三楼回答
用相切,相切,半径的办法是可以解决一些问题,但是对于一些点距离很段的多线段或样条曲线,是有误差的,碰到这种情况,也只能老老实实的偏移,偏移,半径做。我的专业这种很密集的多线段和样条曲线很多,所以想用命令来解决。 问题说不清楚就上个示意图吧 就是实现这样的功能呀:
1,选择第一条相切的曲线
2,选择第二条相切的曲线
3,请输入园的半径r
4,作出与两条曲线相切,半径为r的园
本帖最后由 xyp1964 于 2012-4-15 10:58 编辑
acad的标准命令
(command "circle" "ttr" )
页:
[1]
2