求一个数学表达式程序,讲的很明白。求大神
;; 命令: TT
(defun C:TT (/ AREA E ELIST LST N NUM SS TEXT TEXTPT TEXTSIZE TOTAL)
(princ "\n按比例分摊承包合同面积标注")
(princ "\n作者:carrot1983 QQ:95818608 2015年01月09日")
(command ".-LAYER" "M" "分摊面积标注""C" 2 "分摊面积标注" "")
(princ "\n选择三个地块的面积数字")
(if (and (setq SS (ssget '((0 . "TEXT")
(8 . "面积标注")
(1 . "~*[~`--9]*")
)
)
)
(setq AREA (getreal "\n输入已知的承包合同面积<退出>: "))
)
(progn
(setq LST NIL)
(repeat (setq N (sslength SS))
(setq E (ssname SS (setq N (1- N))))
(setq ELIST (entget E))
(setq NUM (atof (cdr (assoc 1 ELIST))))
(setq LST (cons (list E NUM) LST))
)
(setq TOTAL (apply '+ (mapcar 'cadr LST)))
(foreach X LST
(setq E (car X))
(setq NUM (cadr X))
(setq TEXT (rtos (/ (* NUM AREA) 1.0 TOTAL) 2 2))
(setq ELIST (entget E))
(setq TEXTSIZE (cdr (assoc 40 ELIST)))
(setq TEXTPT (cdr (assoc 10 ELIST)))
(setq TEXTPT (polar TEXTPT (* 1.5 pi) (* 1.1 TEXTSIZE)))
(setq ELIST (subst (cons 1 TEXT)
(assoc 1 ELIST)
ELIST
)
)
(setq ELIST (subst (cons 8 "分摊面积标注")
(assoc 8 ELIST)
ELIST
)
)
(setq ELIST (subst (cons 10 TEXTPT)
(assoc 10 ELIST)
ELIST
)
)
(entmake ELIST)
)
)
)
(princ)
) 本帖最后由 llsheng_73 于 2015-1-8 18:24 编辑
晕,难道最后面积以原承包合同面积为准么?
另外这个功能20明经币买不到
宁可白送,绝不贱卖 llsheng_73 发表于 2015-1-8 18:22 static/image/common/back.gif
晕,难道最后面积以原承包合同面积为准么?
另外这个功能20明经币买不到
宁可白送,绝不贱卖
本人不会写程序,不知道这个东西难不难,给20币是辛苦费,没有其他意思,绝对没有其他意思。
不会以原承包合同面积,主要是要填写原承包合同面积。本来要每户每块地块算的,但是太麻烦了,。
>..额...好吧没什么问题... 什么是已知条件,求什么,结果怎么表示,这些说都说不清,还讲的很明白。。。。 vormittag 发表于 2015-1-9 09:43 static/image/common/back.gif
什么是已知条件,求什么,结果怎么表示,这些说都说不清,还讲的很明白。。。。
已知是承包合同面积啊, 求的是A.B.C, 表示的话可以覆盖A.B.C,也可以覆盖上面原有的面积。 0.32 0.79 0.25 这是啥?已知条件还是举例? 覆盖面积是啥意思?直接改这三个数字? vormittag 发表于 2015-1-9 09:58 static/image/common/back.gif
0.32 0.79 0.25 这是啥?已知条件还是举例? 覆盖面积是啥意思?直接改这三个数字?
0.32 0.79 0.25是地块的面积,是已知条件,只不过是换算成了亩数。覆盖面积就是可以覆盖0.320.790.25 ,最好能单独生个层,生成换算的面积或者算出来的面积换个颜色也行。 本帖最后由 tyrasv 于 2015-1-9 13:01 编辑
carrot1983 发表于 2015-1-9 12:01 static/image/common/back.gif
真心感谢,
页:
[1]
2