按颜色划分的海拔高度-半对称
我发现了一个有趣的程序,可以根据海拔高度进行调查。碰巧,有人知道一个类似的程序,但其中考虑了轮廓/曲线?
(见显示常规结果的图像)
曲线是具有高程的多段线,还是具有不同高程的三维多段线?
Lee,LW带高程的多段线。 Civ 3d可以让你制作表面彩虹,它的显示风格选择之一是颜色而不是线条,你可以选择需要多少“条纹”。 然后,想法是获得每个LWPoly的高程Z值:各种方法,但我认为最简单的方法是使用entget提取PL的DXF代码,然后使用代码为38的assoc。
然后你需要弄清楚颜色是如何在不同层次上变化的:
[列表=1]
[*]最低和最高是什么?
[*]这两种颜色之间会发生怎样的变化?
[*]颜色的新算法是否在一定程度上有效?
[*]您会使用颜色渐变,即RGB颜色而不是ACI吗?
[/列表]
然后修改DXF数据列表(使用entmod),将ACI颜色添加到代码62,或将RGB颜色添加到420。 类似的问题以前在这里被问过。取你的最大最小值,然后除以步长,这会增加颜色。如果你使用简单的按颜色方法颜色10-250,那么很容易计算出物体的颜色数。RGB是更好的色调,但有点难解决。
是的,我认为解决方案是获得每个lwpolylinha的z值,并为该值指定一个颜色渐变,最终将色调保留为最低值将暗色调设置为最高值.
按照我提到的例程示例,最好能为各种调色板提供选项。
最后,可以选择在最大和最小Z之间设置间隔,其中每个间隔将应用一种颜色。 这是一个非常简单的版本,只使用ACI颜色数从10到199,从最低到最高。
(vl-load-com)
(setq *PLColor:ACI_Range* '(10 . 199)
*PLColor:Z_Range* '(0.0 . 100.0))
(defun PLColour:CalcColour (elevation / z aci)
(setq z (- (cdr *PLColor:Z_Range*) (car *PLColor:Z_Range*) -1.0)
z (/ (rem elevation z) z))
(+ (car *PLColor:ACI_Range*) (fix (* (- (cdr *PLColor:ACI_Range*) (car *PLColor:ACI_Range*)) z))))
(defun c:PLColour (/ ss eList minZ maxZ)
(if (and (ssget '((0 . "LWPOLYLINE")))
(setq ss (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object)))))
(progn (setq minZ 1.7976931348623158e308 maxZ -1.7976931348623158e308)
(vlax-for eo ss
(setq eList (cons eo eList)
minZ (min (vla-get-Elevation eo) minZ)
maxZ (max (vla-get-Elevation eo) maxZ)))
(setq *PLColor:Z_Range* (cons minZ maxZ))
(foreach eo eList (vla-put-Color eo (PLColour:CalcColour (vla-get-Elevation eo))))
(vla-Delete ss)))
(princ)) 伊尔内布,坦克求救。
不幸的是,它似乎不起作用。报告以下错误:
此外,这:
我做错什么了吗? 您使用的是哪一版本的ACad?还是垂直/克隆?
页:
[1]
2