明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3182|回复: 14

[基础] 請教 函數osnap 求交點的問題

  [复制链接]
发表于 2010-11-16 21:33 | 显示全部楼层 |阅读模式

下面這段程式

畫兩條直線,並且相交

交點畫圓,r=100

 

為什麼我使用osnap無法得到交點,正確的寫法是什麼?

 

(defun C:000()
  (setvar "cmdecho" 0)
  (setq p1(getpoint))
  (setq p2(getpoint p1))
  (command "line" p1 p2 "")
 
  (setq en1 (entlast))
 
  (setq p3(getpoint))
  (setq p4(getpoint p3))
  (command "line" p3 p4 "")
  (setq en2 (entlast))
 
  (setq pm (osnap en1 en2))
  (command "circle" pm 100)
  (prin1)
)

发表于 2010-11-16 21:59 | 显示全部楼层
(inters p1 p2 p3 p4)
 楼主| 发表于 2010-11-17 08:32 | 显示全部楼层

只能使用inters這個方式嗎

 

不是有使用osnap求中點座標的做法

(setq pm (osnap en1 "mid"))

求交點沒有辦法用osnap嗎??

 

发表于 2010-11-17 09:25 | 显示全部楼层

(osnap pt mode)
Arguments
pt
A point.

mode
A string that consists of one or more valid Object Snap identifiers,
such as mid, cen, and so on, separated by commas.

 

您用的版本說明上是 (osnap en1 "mid")) !?

 楼主| 发表于 2010-11-17 11:48 | 显示全部楼层

我是在書本上看到的範例

有看到中點座標可以這樣取得

在想說交點座標是否也能用相同的方式??

 

 

(defun C:001()
(setvar "cmdecho" 0)
(setq en(entsel "select a LINE"))
(setq pts(cadr en));;y物件
(setq mpt(osnap pts"mid"))
(setq mr (getdist mpt "circle R"))
(command "circle" mpt mr)
(prin1)
)
发表于 2010-11-17 11:58 | 显示全部楼层

(setq en1 (entlast))

(osnap en1 "mid")) !?

 

(setq mpt(osnap pts"mid"))

en1 !=  Pts

書本上沒錯

You may print it
(princ en1) <==> (princ pts)

发表于 2010-11-17 12:31 | 显示全部楼层
inters
 楼主| 发表于 2010-11-17 12:54 | 显示全部楼层

所以有辦法用osnap函數

來得到兩條直線的中點座標嗎??

发表于 2010-11-17 20:09 | 显示全部楼层

用osnap函数可以取得交点,但前提是:两物体交点在指定点pt的捕捉框(选择物体的方框)范围内。

使用格式:(setq pt1 (osnap pt "INT"))

取得两直线中点坐标的方式也是有要求的:直线在定点pt的捕捉框(选择物体的方框)范围内。

使用格式:(setq pt1 (osnap pt "MID"))

 楼主| 发表于 2010-11-17 21:25 | 显示全部楼层

不太明白耶

zzxxqq,你可以為我舉一個具體的例子嗎 ><

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-20 19:33 , Processed in 0.359534 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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