halam 发表于 2022-7-5 16:31:08

使用xline切片

这个漂亮的xline怎么能用来切片对象(定义了3个点:int pt1 pt2)并将ucs设置到这个平面上呢?这些添加的线把我带到了那里,只是p1和pt2的格式似乎不正确(?)
 
 
http://www.cadtutor.net/forum/showthread.php?100283-创建-construcion-line-between-2-construction-line-or-line-or-polylines-HELP&p=682015&viewfull=1#后682015
 
**编辑**




(defun c:test2 ( / Ent1 Ent2 EntDxf1 EntDxf2 Pkt1 Pkt2 Pkt3 Pkt4 Xpoint )
(setq Ent1 (entsel "Xline1" ) )
(setq Ent2 (entsel "Xline2" ) )
;(setq Pkt1 (assoc 10 Ent1)); somethings wrong here..
;(setq Pkt3 (assoc 10 Ent2))    ; somethings wrong here too
(setq EntDxf1 (entget (car Ent1 )) )
(setq EntDxf2 (entget (car Ent2 )) )
(setq Pkt2 (polar (cdr (assoc 10 EntDxf1 )) (angle (list 0 0 0 ) (cdr (assoc 11 EntDxf1 )) ) 1 ) )
(setq Pkt4 (polar (cdr (assoc 10 EntDxf2 )) (angle (list 0 0 0 ) (cdr (assoc 11 EntDxf2 )) ) 1 ) )
(setq Xpoint (inters (cdr (assoc 10 EntDxf1 )) Pkt2 (cdr (assoc 10 EntDxf2 )) Pkt4 nil ) )

; (command "ucs" ..)) ; do 3D stuff with Xpoint Pkt1 Pkt3 as three defined points on a plane ..)

halam 发表于 2022-7-5 16:40:01

你好
我可能找到了一段更好、更简单的代码(见上文)。
我的问题是:我怎样才能在一个像样的情况下得到xline(assoc 10)的xyz,或者我可以使用它?
 
 
不良关联列表:(-98.4044 132.005 0.0))

SLW210 发表于 2022-7-5 16:51:33

您的线程似乎更适合AutoLISP、Visual LISP和DCL论坛。

nukecad 发表于 2022-7-5 16:55:41

这里的问题是xline没有起点或终点吗?它们的长度是无限的。
 
您可能需要更多的处理来确定XLine的方向。
(可能在xline上选择2个点?)。

halam 发表于 2022-7-5 17:02:21

对于切片,我需要三个点中的两个
 
xline的两个“inspoints”(如果平行,则结束并继续切片…)
第三个可能是这些xline的交叉点(我已经准备好了代码)
 
 
我现在的问题是,我需要一个带有entget或其他东西的xline对象的插入点
希望你理解我想要实现的目标。

Grrr 发表于 2022-7-5 17:13:19

 
(cdr (assoc 10 (entget (car (entsel)))))

halam 发表于 2022-7-5 17:20:49

我在想这个主意毕竟不太好
因为很多时候xline是非共面的。
但是,我想学习如何检索给定xline上的一些xyz点
你能指出为什么这失败了,因为我不知道。
 
 
命令:测试
选择第一条xline:
选择2st xline:;错误:错误的参数类型:listp
 
 
<p> </p><p> </p><p>The idea ..</p><p>inthis gif.. </p><p> </p><p> </p><p> </p><p>https://drive.google.com/file/d/0B6-6JB1a0xTcTVg1aVdtRk52QzA/view?usp=sharing</p><p> </p><p>(defun c:test ( / Ent1 Ent2 Pkt1 Pkt2 )</p><p>(setq Ent1 (entsel "\nSelect 1st xline: "))</p><p>(setq Ent2 (entsel "\nSelect 2st xline: "))</p><p>(setq Pkt1 (cdr (assoc 10 (car Ent1))))</p><p>(setq Pkt2 (cdr (assoc 10 (car Ent2))))</p><p>...</p><p>[\code]</p><p><img src="https://www.cadtutor.net/forum/uploads/monthly_2017_04/2017-04-03_22-54-26.jpg.044ac96d56ca91173e2902d5afd9814e.jpg"   ></p>

Grrr 发表于 2022-7-5 17:24:30

你忘了获取实体,汉斯。

halam 发表于 2022-7-5 17:32:18

我知道(entsel)和(entget)不一样。。mcgyver在这里仍然迷路。。
 
 
; 错误:错误的参数类型:lentyp“\n选择第一个xline:”
页: [1]
查看完整版本: 使用xline切片