世界的一滴 发表于 2020-4-19 15:56
大神 这段代码运行后显示 错误: 参数类型错误: numberp: nil请问是哪里的问题啊
(defun c:sbzb (/ ffn f ...
(defun c:sbzb (/ ffn ff ss mh pp n i mj xh tx ty)
(setvar "cmdecho" 0)
(vl-load-com)
(setq ss (ssget '((0 . "*LINE"))))
(setq ffn (getfiled "\n保存的坐标文件" "坐标" "txt" 1)
ff(open ffn "w")
)
(write-line "[属性描述]" ff)
(write-line "格式版本号=1.01版本" ff)
(write-line "数据产生单位=" ff)
(write-line "数据产生日期=20" ff)
(write-line "坐标系=国家大地坐标系" ff)
(write-line "几度分带=3" ff)
(write-line "投影类型=高斯克吕格" ff)
(write-line "计量单位=米" ff)
(write-line "带号=41" ff)
(write-line "精度=3" ff)
(write-line "转换参数=0,0,0,0,0,0,1" ff)
(write-line "[地块坐标]" ff)
(setq i 0)
(repeat (sslength ss)
(command "area" "o" (ssname ss i))
(setq mj (getvar "area"))
(setq mj (rtos (* mj 0.0001) 2 4)
mh (strcat (itoa (1+ i))
","
mj
",1,开发区,面,J51G067033J51G067034,仓储用地,063,@"
)
)
(write-line mh ff)
(setq ssdata (entget (ssname ss i))
n 0
xh 0
)
(repeat (length ssdata)
(setq pp (nth n ssdata)
key (car pp)
)
(if (= key 10)
(progn
(setq tx (strcat "J"
(itoa (1+ xh))
","
"1"
","
(rtos (caddr pp) 2 3)
","
(rtos (cadr pp) 2 3)
)
)
(write-line tx ff)
(if (= xh 0)
(setq ty tx)
)
(setq xh (1+ xh))
)
)
(setq n (1+ n))
)
(write-line ty ff)
(setq i (1+ i))
)
(close ff)
(setvar "cmdecho" 1)
(princ (strcat "\n 坐标写至=>" ffn))
(princ (strcat "\n 共提取" (itoa xh) "个坐标点"))
(princ)
)
gaics 发表于 2020-4-19 18:58
大神 我想问两个问题 1是把字符串转数值的语句是什么 例如把 “5” 变成5
2是获取多段线顶点个数的语句是什么 可否帮忙解惑:handshake 本帖最后由 gaics 于 2020-4-19 20:46 编辑
(rtos "5" 2 "精度")
顶点数可以通过代码中的“xh”获得。总的顶点数是xh*i gaics 发表于 2020-4-19 20:05
(rtos "5" 2 "精度")
顶点数可以通过代码中的“i”获得
感谢大神为小白答疑解惑
然吾资历尚浅,仍需时日以顿悟,
今之所言,甚是感激~:loveliness: 本帖最后由 gaics 于 2020-4-19 20:47 编辑
世界的一滴 发表于 2020-4-19 20:09
感谢大神为小白答疑解惑
然吾资历尚浅,仍需时日以顿悟,
今之所言,甚是感激~
刚看了一下,i和xh搞反了,现在更正过来,代码见11楼。
i是选择的多段线数量,xh是顶点数量。
但是(princ (strcat "\n 共提取" (itoa xh) "个坐标点"))返回的只是最后一条多段线的顶点数量,不知你想得到的是每一条多段线的顶点数,还是所有顶点数。
gaics 发表于 2020-4-19 20:34
刚看了一下,i和xh搞反了,现在更正过来,代码见11楼。
i是选择的多段线数量,xh是顶点数量。
但是(pri ...
是一条多段线所有顶点的个数 比如矩形 就是4个顶点 gaics 发表于 2020-4-19 20:34
刚看了一下,i和xh搞反了,现在更正过来,代码见11楼。
i是选择的多段线数量,xh是顶点数量。
但是(pri ...
是一条多段线所有顶点的个数 比如矩形 就是4个顶点 gaics 发表于 2020-4-19 20:34
刚看了一下,i和xh搞反了,现在更正过来,代码见11楼。
i是选择的多段线数量,xh是顶点数量。
但是(pri ...
是一条多段线所有顶点的个数 比如矩形 就是4个顶点 你这个是用LISP导出报部里的界址点坐标TXT功能吧,CAD做这个有个问题,不能识别环洞,还有就是不能解决自相交的问题。 学习~~~~~~~~~~~~~~~~~~~~~~~~
页:
1
[2]