ybilgen 发表于 2022-7-6 21:50:32

距离和高程例程

大家好,
很久以前,我写过这个lisp例程,
该例程从屏幕输入参考点坐标、高程和距离值。它计算几个新点的高程和距离值,并将其高程和距离值写入屏幕。
 
谁能帮我把这个例程编译成vba代码吗
 
(定义C:x()
;我们定义了参考点
(命令“osnap”“int”)
(setq prop(getpoint“定义参考点:”))
(setq propx(汽车道具))
(setq propy(cadr prop))
(setq n 100)
;我们定义了参考点高程
(setq ropkot1(entget(setq ropkot(car(entsel)“\n定义参考点高程:”)))
(setq ropkot2(cdr(assoc 1 ropkot1)))
(setq ropkoti(atof ropkot2))
;我们定义了参考点距离
(setq ropmes1(entget(setq ropmes(car(entsel“\n定义参考点距离:”))))
(setq ropmes2(cdr(assoc 1 ropmes1)))
(setq ropmesi(atof ropmes2))
 
;我们接受了新观点
(重复n
(命令“osnap”“end”)
(setq p1(getpoint“定义新点:”))
 
(setq p1x(汽车p1))
(setq p1y(cadr p1))
 
(命令“osnap”“none”)
(命令“color”“white”)
(命令行(list p1x p1y)(list(+p1x 1.575)(+p1y 2.1))“”)
(命令行(list(+p1x 1.575)(+p1y 2.1))(list(-p1x 1.575)(+p1y 2.1))“”)
(命令行(list(-p1x 1.575)(+p1y 2.1))(list p1x p1y)“”)
(setq m1(-p1x propx))
(如果(
 
(setq kot(+ropkoti(/(-p1y propy)10)))
(命令“text”(list(-p1x 3.0)(+p1y 2.5))1.8 0(rtos kot 2 2))
(命令“text”(list(+p1x 0.75)(-p1y 7))1.8 90(rtos(abs mesafe)2 2))
 
)

SLW210 发表于 2022-7-6 22:24:59

请阅读代码发布指南,并编辑代码以包含在代码标签中。
Your Code Here=
Your Code Here

BIGAL 发表于 2022-7-6 23:07:41

如果可行,为什么要转换?如果有问题,可以从VBA代码运行lisp。只要找到一些VBA代码示例,您就应该能够解决它。
 

Dim basepnt, pt1, pt2, pt3 As Variant
basepnt = ThisDrawing.Utility.GetPoint(, " Pick PIT center ")
ptxtx1 = CStr(FormatNumber(basepnt(0), 3))
ptxty1 = CStr(FormatNumber(basepnt(1), 3))
pt1 = ThisDrawing.Utility.GetPoint(, " Pick 1st point ")
页: [1]
查看完整版本: 距离和高程例程