rikiki 发表于 2022-7-5 18:48:02

LISP编辑帮助

大家好,
 
我希望在编辑LISP例程时能得到一些帮助。
 
我有一个由Charles Darling创建的Lisp程序http://www.gilesdarling.me.uk/lisproutines.shtml我希望能得到一些帮助,稍微编辑一下,以更好地满足我的需要。
 
我有一条电缆线路,我正试图沿着它创建KP(公里标)标志。链测长度lisp允许我这样做,但仅限于一点。
 
当前lisp在用户指定的距离处创建标记,但仅将单位绘制为米700.000。理想情况下,我希望将标记转换为公里,即4.5等。有关预期结果的示例,请参见所附图片。
 
希望这是有意义的,有人能够在这里提供帮助。
 
谢谢

链测长度。lsp

SLW210 发表于 2022-7-5 19:20:27

我将你的帖子转移到AutoLISP、Visual LISP和DCL论坛,请将你的问题发布在适当的论坛上。
 
您是否尝试联系LISP的创建者(滚动到链接页面的底部)?

rikiki 发表于 2022-7-5 19:41:06

谢谢你换到正确的地方。是的,我之前尝试联系创造者,但没有成功。

BIGAL 发表于 2022-7-5 20:01:24

学习lisp的好时机。你需要通读代码,找到链测长度的变量,然后除以1000。该程序有很好的注释。我找到了几个可能的起点,特别是cd\u v1,但它在哪里转换为cd\u t4
 

; Internal Variables:
; ===================
; cd_l1 = list of groups of coordinates (x,y), chainage(s), offset(s) and level(s)
; cd_z1 = value of DIMZIN at start of function
; cd_h1 = current text height
; cd_c1 = count through cd_l1
; cd_l2 = copy of list cd_l1 but with chainages and offsets rounded to 3 decimal places
; cd_i1 = item in list cd_l1 or cd_l2
; cd_v1 = item's chainage
; cd_v2 = item's offset
; cd_m1 = minimum chainage at start of comparison
; cd_m2 = minimum offset at start of comparison
; cd_m3 = maximum chainage
; cd_m4 = maximum offset
; cd_t1, cd_t2, cd_t3, cd_t4, cd_t5 = text for each MTEXT object
; cd_n1 = next comparison chainage
; cd_n2 = next comparison offset
; cd_p1 = point at which to draw MTEXT objects
; cd_x1 = horizontal offset between each MTEXT object


; Internal Variables:
; ===================
; ck_l1 = source polyline parsed list
; ck_n1 = chainage at start of polyline
; ck_n2 = chainage where chainage mark is to be drawn
; ck_b1 = chainage mark number style (nil for CHXSECT and CHXSECTS)
; ck_s1 = chainage mark line length (bigger for CHXSECT and CHXSECTS)
; ck_c1 = count through ck_l1
; ck_n3 = chainage at start of segment
; ck_z1 = initial value of DIMZIN
; ck_h1 = current text height
; ck_i1 = item in ck_l1
; ck_n4 = length of segment
; ck_p1 = mid-point of chainage mark, then start point for text
; ck_a1 = angle along line or arc, then angle for chainage mark
; ck_t1 = text output
; ck_b2 = flag: T if text output is negative, nil if positive
页: [1]
查看完整版本: LISP编辑帮助