材料和重量
大家好,我已经一头扎进了压倒一切的Autolisp世界……不用说,我有点不知所措。
我一直在尝试为AutoCAD 14编写一个程序,该程序带有一个对话框,允许用户从标准材料的下拉列表中选择/单击“选择对象”按钮…将选定材料应用于三维实体,并使其显示基于实体体积的重量。
此外,我还添加了两个单选按钮:一个用于英制测量,另一个用于公制测量。
还有另一个“选择对象”总按钮,用于计算和显示整个三维实体部件的组合权重。
我使用了一个名为ObjectDCL的程序来设计对话框(附带ODC文件和图像)。但这真的是我所能做到的。
我找到了这些链接作为起点,但不知道如何将它们联系在一起:
http://www.ellenfinkelstein.com/acadblog/create-a-custom-function-in-autocads-calculator/
http://cadtips.cadalyst.com/mass-properties/tip-2258-calculate-weight
http://cadtips.cadalyst.com/mass-properties/tip-2258-calculate-weight
http://www.cadtutor.net/forum/showthread.php?50384-计算2d-shape-amp-3dsolid-object-by-asigned-material&highlight=材质+密度
http://www.cadtutor.net/forum/showthread.php?89753-帮助请结合lisp&高亮显示=材质+密度
我有准备好插入的材料清单,以及密度(单位:lbs/in^3)
我希望你们中的一位编程天才能把它组装起来,让它按预期工作。我也希望我能研究一下这些代码,并得到一些关于它是如何工作的线索。
我对这种编程语言的潜力很感兴趣,很想被论坛上众多专家中的一位介绍给我。提前谢谢,如果我错过了什么,请告诉我。
Matwt。lsp
ODC。拉链 我想应该这样做:
; (GetMass (vlax-ename->vla-object (car (entsel))) '(("ByLayer" 0) ("ByBlock" 0) ("Glass" 5) ("Concrete" 20)("Global" 1)))
(defun GetMass ( o L )
(if (and (eq 'VLA-OBJECT (type o)) (vlax-property-available-p o 'Material)(vlax-property-available-p o 'Volume))
(* (cond ( (cadr (assoc (vla-get-Material o) L)) ) (0)) (vla-get-Volume o))
)
); defun GetMass
尽管您必须学习一些visual lisp和DCL(或者只使用LM:ListBox-如果您只对用户提示感到满意的话)。
页:
[1]