francesc 发表于 2022-7-5 20:10:47

外缘

正如我所知,矩形的边只知道它们的周长。
Lisp程序。
 
非常感谢。

ReMark 发表于 2022-7-5 20:20:31

难道你不需要知道关于矩形的其他信息,比如它的面积或两个对角之间对角线的长度吗?
 

 
两个大小不同的矩形,但它们的周长相同。这些领域也不同。

francesc 发表于 2022-7-5 20:27:59

只有我单独作为周长或区域。有时是面积或周长

ReMark 发表于 2022-7-5 20:29:44

因此,lisp例程启动,提示用户单击一个矩形,并在进行拾取后显示矩形的长度和宽度?
 
您是否正在查看包含有人用周长或面积标记的矩形的CAD图纸?是这样吗?

hanhphuc 发表于 2022-7-5 20:36:36

 


(defun c:test (/ en l)
;perimeter for LWPolyline only
(if (and (setq en (car (entsel "\nPick entity..")))
   (setq lst (entget en)
       l   (= (cdr (assoc 0 lst)) "LWPOLYLINE")
       ) ;_ end of setq
   ) ;_ end of and
   (progn (setq l (vl-remove-if-not ''((x) (= (car x) 10)) lst))
   (princ
   (strcat "\nPerimeter= "
             (rtos (apply '+ (mapcar ''((a b) (distance a b)) l
                (append (cdr l) (list (car l))))) 2 3) ; _ end of rtos
             ) ;_ end of strcat
   ) ;_ end of princ
   ) ;_ end of progn
   ) ;_ end of if
(princ)
) ;_ end of defun

ReMark 发表于 2022-7-5 20:41:48

当LIST命令不仅会给用户提供周长,而且还会给用户提供面积时,为什么还要麻烦使用自定义lisp例程呢?如果仔细观察结果,就能计算出长度和宽度。
 
在矩形上运行LIST命令的示例。你能推断出长度和宽度吗?
 

hanhphuc 发表于 2022-7-5 20:48:43

说得好,ReMark先生!!
也许OP想学习编码?

ReMark 发表于 2022-7-5 20:53:53

或者OP想知道矩形的长度和宽度,因为他已经知道了面积或周长?

hanhphuc 发表于 2022-7-5 20:59:09

也许你是对的。等待OP回复

BIGAL 发表于 2022-7-5 21:08:23

如果使用VLISP,面积和长度是直接答案,也是闭合的。
 

(setq ent (entsel "Pick pline"))
(setq obj (vlax-ename->vla-object (car ent)))
(setq area (vlax-get-property obj 'Area))
(setq Length (vlax-get-property obj 'length))
(setq closed (vlax-get-property obj 'Closed))
页: [1] 2
查看完整版本: 外缘