指导
大家好。我有一个Lisp程序的问题,不知道这个很棒的网站上是否有人能为我指出正确的方向。以下是我想要做的:随附文件为雷达波束扩展布局。基本上,这是一个12海里的圆圈,有风力涡轮机和雷达的位置。我在这个文件中的练习是从我们的雷达(在固定位置)投射一个雷达波束,并显示该波束被风力涡轮机立柱阻挡的位置。在本例中,有66台涡轮机,他们要求我为每个项目创建闭合多段线:
1、波束从雷达传播到立柱位置
2、梁堵塞超过该立柱位置
3、任何一侧的透明梁,超过该立柱位置
每个涡轮机总共有4条闭合多段线。所有这些多段线都会导入到Arch GIS中,以生成最终产品。
在这个文件中,我为每个项目创建了边界(在第一列位置),然后将所有这些边界复制并旋转到下一个涡轮机,并修改排列以匹配新的涡轮机位置。这样做66次是非常乏味的,我有另一个雷达定位做这个网站。这可以用LISP例程完成吗?如果是这样,我应该开始研究LISP例程的哪些方面来实现它?我不是在寻找任何人帮我做这件事,只是一些一般性的指导。目前这对时间不敏感。我只是在寻找一个更快的方式来完成这一点,因为我将在未来有更多的此类项目。提前感谢您的帮助。
波束扩展-南部雷达。图纸 这是一个完整的切线,我道歉,如果我猪你的线程,我真的不知道关于Lisp程序。
但是
我的公司对雷达和风力涡轮机以及你提到的堵塞进行了研究。简而言之,他们得出的结论是,雷达被机翼的整个跨度所阻挡,就像机翼被圆盘所取代一样。我发现这很有趣,翅膀看起来没那么大,旋转也不太快。希望我能找到一个来源,虽然这进一步解释了它。。。
只是相切,抱歉打扰了。 非常有趣的项目。(极性)函数将成为您的朋友。
对于每个涡轮机来说,这实际上是相当简单的计算。假设每个涡轮机总共有5个点
点将从雷达中心到障碍物的任一侧,然后延伸到外部边界
-大卫
只是涡轮机的塔架还是叶片也出现堵塞?
距离和尺寸需要转换为单个单位(英尺、英里、公里),以使每个人的生活更轻松。 不用担心,老虎。我在这里的主要工作是为营销制作图纸和平面设计。关于我们实际的雷达技术,我对这一切都很陌生。我要把这件事告诉我们的GIS人员,看看他说了些什么。(出于好奇)。他们正在寻找利用我为潜在客户开发演示材料的方法。我想他们可以在Arch GIS中这样做,但这需要更长的时间。我所能做的就是为他们提供他们想要的。。。。。开始学习雷达技术,这样我就能更好地理解其中的内容。谢谢你的信息。。。 目前,他们要求我只使用这个项目的列。他们可能还会回来索要实际的刀片。我将根据老虎队的帖子向他们提及这一点,看看他们对此有何看法。在我看来,你会让雷达穿过叶片,只是不是一个清晰的光束。再说一次,我是雷达技术新手。我要开始研究LISPS,看看我能想出什么。谢谢你的意见。 只是出于好奇,A到B的距离是如何确定的?我假设这个圆是涡轮机塔,而绿色的柱线是被阻塞的区域。
雷达波束是否有一个设定的夹角-大卫
你好,大卫。总共是。距离雷达位置中心45度。(从中心向任意方向0.225)你是对的,圆圈是涡轮机塔,绿色是远处的阻塞梁。 大卫,我刚想到我没有真正回答你最初的问题。我做这件事的方法是从柱(圆)的中心点画一条线,垂直于两侧的外梁。想想看,这可能有点不对劲。我认为那条线实际上需要与当时雷达的位置平行。这是我需要解决的问题。 只是因为我觉得这是一个有趣的练习:
1) 当涡轮机塔架占据超过0.45度的波束角(塔架非常靠近雷达塔)时,障碍区域在涡轮机之外增加超过0.45度。(附上您的第一张图纸示例。)
“按原样”
(defun c:rbeam (/ cp b r ln ss en ed cp d1 d2
p0 p1 p2 p3 p4 p5 p6 p7 p8)
(defun AtoR (a) (* pi (/ a 180.0))) ;Angle To Radian
(defun RtoA (r) (/ (* r 180.0) pi)) ;Radian To Angle
(initget 1)
(setq cp (getpoint "\nRadar Beam Center Point: "))
(initget 6)
(setq b (getdist "\nRadar Beam Radius <22232.3>: "))
(or b (setq b 22232.3))
(initget 6)
(setq r (getdist "\nTurbine Tower Diameter <2.1495>: "))
(or r (setq r 2.1495))
(while (or (not (snvalid ln))
(not (tblsearch "LAYER" ln))
(not (ssget "X" (list (cons 0 "POINT")(cons 8 ln)))))
(setq ln (getstring "Turbine Tower Center Point Layer <AZ_PERRIN_RANCH_OPTIMIZED_>: "))
(if (= ln "")
(setq ln "AZ_PERRIN_RANCH_OPTIMIZED_")))
(and (setq ss (ssget "X" (list (cons 0 "POINT")(cons 8 ln))))
(while (setq en (ssname ss 0))
(setq ed (entget en)
p0 (cdr (assoc 10 ed))
d1 (distance cp p0)
d2 (max r (distance p0 (polar cp (+ (angle cp p0) (ator 0.225)) d1)))
p1 (polar p0 (+ (angle cp p0) (* pi0.5)) d2)
p4 (polar p0 (+ (angle cp p0) (* pi -0.5)) d2)
p2 (polar p0 (+ (angle cp p0) (* pi0.5)) r)
p3 (polar p0 (+ (angle cp p0) (* pi -0.5)) r)
p5 (polar cp (angle cp p1) b)
p6 (polar cp (angle cp p2) b)
p7 (polar cp (angle cp p3) b)
p8 (polar cp (angle cp p4) b))
(entmake (list (cons 0 "POLYLINE")(cons 8 "BEAM")(list 10 0 0 0)(cons 70 1)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM")(cons 10 cp)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM")(cons 10 p1)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM")(cons 10 p2)(cons 42 1.0)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM")(cons 10 p3)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM")(cons 10 p4)))
(entmake (list (cons 0 "SEQEND")(cons 8 "BEAM")))
(entmake (list (cons 0 "POLYLINE")(cons 8 "BEAM_CLEAR")(list 10 0 0 0)(cons 70 1)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM_CLEAR")(cons 10 p5)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM_CLEAR")(cons 10 p6)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM_CLEAR")(cons 10 p2)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM_CLEAR")(cons 10 p1)))
(entmake (list (cons 0 "SEQEND")(cons 8 "BEAM_CLEAR")))
(entmake (list (cons 0 "POLYLINE")(cons 8 "BEAM_CLEAR")(list 10 0 0 0)(cons 70 1)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM_CLEAR")(cons 10 p8)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM_CLEAR")(cons 10 p7)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM_CLEAR")(cons 10 p3)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM_CLEAR")(cons 10 p4)))
(entmake (list (cons 0 "SEQEND")(cons 8 "BEAM_CLEAR")))
(entmake (list (cons 0 "POLYLINE")(cons 8 "BEAM_OBSTRUCTION")(list 10 0 0 0)(cons 70 1)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM_OBSTRUCTION")(cons 10 p6)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM_OBSTRUCTION")(cons 10 p2)(cons 42 -1.0)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM_OBSTRUCTION")(cons 10 p3)))
(entmake (list (cons 0 "VERTEX")(cons 8 "BEAM_OBSTRUCTION")(cons 10 p7)))
(entmake (list (cons 0 "SEQEND")(cons 8 "BEAM_OBSTRUCTION")))
(ssdel en ss)))
(prin1))
玩得开心-大卫
页:
[1]