明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1736|回复: 9

请问怎样转化选定的弧线成为直线?

[复制链接]
发表于 2004-6-20 23:38:00 | 显示全部楼层 |阅读模式
需要的就是把弧线的两个端点用直线连接起来,有很多弧线,不一定都在一个平面内 我写了一个但是不知道为什么不能用 (defun c:atl ()
(prin1 "\请选择需要转化成直线的圆弧:")
(setq ss (ssget))
(VL-LOAD-COM)
(setq AcadObject (vlax-get-acad-object)
AcadDocument (vla-get-ActiveDocument Acadobject)
mSpace (vla-get-ModelSpace Acaddocument)
)
(setq i 0)
(setvar "pdmode" 33)
(repeat (sslength ss)
(setq ssn (ssname ss i))
(setq arcObj (entget ssn))
(setq startPnt1 (vla-get-StartPoint arcObj))
(setq endPnt1 (vla-get-EndPoint arcObj))
(setq i (1+ i))
(command "line" startPnt1 endPnt1 "")
)
) 以前没有用过activex,请多指教! 本来我是想先把arc转化为pline然后再连成直线,但是空间上好像这个方法行不通
发表于 2004-6-21 00:23:00 | 显示全部楼层
(defun c:atl ()
(prin1 "\请选择需要转化成直线的圆弧:")
(setq ss (ssget))
(VL-LOAD-COM)
(setq AcadObject (vlax-get-acad-object)
AcadDocument (vla-get-ActiveDocument Acadobject)
mSpace (vla-get-ModelSpace Acaddocument)
)
(setq i 0)
(setvar "pdmode" 33)
(repeat (sslength ss)
(setq ssn (ssname ss i))
(setq arcObj (VLAX-ENAME->VLA-OBJECT ssn))
(setq startPnt1 (vla-get-StartPoint arcObj))
(setq endPnt1 (vla-get-EndPoint arcObj))
(setq i (1+ i))
(VLA-ADDLINE MSPACE startPnt1 endPnt1)
)
)
 楼主| 发表于 2004-6-21 14:47:00 | 显示全部楼层
多谢alin 现又有一个问题,就是我想把点转化为lisp的格式怎么不管用? (defun c:atl ()
(prin1 "\请选择需要转化成直线的圆弧:")
(setq ss (ssget))
(VL-LOAD-COM)
(setq AcadObject (vlax-get-acad-object)
AcadDocument (vla-get-ActiveDocument Acadobject)
mSpace (vla-get-ModelSpace Acaddocument)
)
(setq i 0)
(setvar "pdmode" 33)
(repeat (sslength ss)
(setq ssn (ssname ss i))
(setq arcObj (VLAX-ENAME->VLA-OBJECT ssn))
(setq startPnt1 (vla-get-StartPoint arcObj))
(setq endPnt1 (vla-get-EndPoint arcObj))
(setq p1 (vlax-vla-object->ename startPnt1))
(setq p2 (vlax-vla-object->ename endPnt1))
(setq i (1+ i))
(command "line" p1 p2 "")
)
(COMMAND "ERASE" SS "")
(prin1)
)
发表于 2004-6-21 15:22:00 | 显示全部楼层
(setq p1 (vlax-safearray->list (vlax-variant-value startPnt1)))
 楼主| 发表于 2004-6-21 23:46:00 | 显示全部楼层
再次感谢alin兄,不过还有个问题想麻烦你,不知道为什么下边的程序不能用?总是说ssget列表错误? (setq lay (getstring ":"))
(setq ss (ssget "x"
'((-4 . "<or")
(-4 . "<and")
(list (cons 8 . lay))
(0 . "line")
(-4 . "and>")
(-4 . "<and")
(list (cons 8 . lay))
(0 . "arc")
(-4 . "and>")
(-4 . "or>")
)
)
)
发表于 2004-6-22 07:54:00 | 显示全部楼层
(list (cons 8 . lay))-&gt;(cons 8 lay)
 楼主| 发表于 2004-6-22 08:49:00 | 显示全部楼层
还是说列表错误啊!
发表于 2004-6-22 19:11:00 | 显示全部楼层
' 内不能用cons了


以上选择可以这样写


(ssget (list '(0 . "line,arc") (cons 8 lay)))
发表于 2004-6-22 19:17:00 | 显示全部楼层
本帖最后由 作者 于 2004-6-23 13:35:12 编辑

this will be ok:



(setq ss (ssget "x" (list '(cons 8 lay)'(0 . "ARC,LINE"))))
 楼主| 发表于 2004-6-22 19:37:00 | 显示全部楼层
本帖最后由 作者 于 2004-6-22 20:51:15 编辑

多谢多谢!!


还想多问一个问题:就是我把一些数据写入到文件中以后,想把文件中的数据用不同的颜色显示,可以吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 12:37 , Processed in 0.162927 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表