wimal 发表于 2022-7-6 06:11:55

请查找错误

我编写了以下代码来连接文本的插入点。
它在大部分文件中工作。
但在所附文件中,生成的行显示在远离
原始点。(文本靠近黄色圆圈的中心,线条靠近
红色圆圈的中心)
(defun c:testline()
(setq spotlevel(car (entsel "\nSelect First text:")))
(setq assolistspot (entgetspotlevel))
(setq P1 (cdr(assoc 10 assolistspot)))


(setq spotlevel(car (entsel "\nSelect Second text:")))
(setq assolistspot (entgetspotlevel))
(setq P2 (cdr(assoc 10 assolistspot)))

(command "line" "non"p1 "non"p2 "")
)
测试线。图纸

GP_ 发表于 2022-7-6 06:26:12

尝试:
 

(defun c:testline ()
   (setq spotlevel (car (entsel "\nSelect First text:")))
   (setq assolistspot (entget spotlevel))
   (setq P1 (trans (cdr (assoc 10 assolistspot)) 0 1))
   (setq spotlevel (car (entsel "\nSelect Second text:")))
   (setq assolistspot (entget spotlevel))
   (setq P2 (trans (cdr (assoc 10 assolistspot)) 0 1))
   (command "_line" "_non" p1 "_non" p2 "")
)

wimal 发表于 2022-7-6 06:37:34

非常感谢,您的代码运行良好。

wimal 发表于 2022-7-6 06:56:39

 
非常感谢,您的代码运行良好。
你能告诉我0 1是什么意思吗

Lee Mac 发表于 2022-7-6 07:07:00

 
有关trans功能,请参阅以下参考:
 
http://exchange.autodesk.com/autocad/enu/online-help/browse#WS1a9193826455f5ff1a32d8d10ebc6b7ccc-6905.htm
 
请注意,命令需要相对于UCS表达的点。
 
然而,我建议对代码进行以下修改:
因为文本实体的插入点是相对于实体的OCS而不是WCS来表示的;仅当文本位于与WCS平面平行的平面内时,相对于OCS表示的插入点才等于WCS-您可以在此处找到有关OCS的更多信息。

wimal 发表于 2022-7-6 07:16:18

谢谢,先生,我现在可以复习功课了。
页: [1]
查看完整版本: 请查找错误