外缘
正如我所知,矩形的边只知道它们的周长。Lisp程序。
非常感谢。 难道你不需要知道关于矩形的其他信息,比如它的面积或两个对角之间对角线的长度吗?
两个大小不同的矩形,但它们的周长相同。这些领域也不同。 只有我单独作为周长或区域。有时是面积或周长 因此,lisp例程启动,提示用户单击一个矩形,并在进行拾取后显示矩形的长度和宽度?
您是否正在查看包含有人用周长或面积标记的矩形的CAD图纸?是这样吗?
这
(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
当LIST命令不仅会给用户提供周长,而且还会给用户提供面积时,为什么还要麻烦使用自定义lisp例程呢?如果仔细观察结果,就能计算出长度和宽度。
在矩形上运行LIST命令的示例。你能推断出长度和宽度吗?
说得好,ReMark先生!!
也许OP想学习编码? 或者OP想知道矩形的长度和宽度,因为他已经知道了面积或周长? 也许你是对的。等待OP回复 如果使用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