乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 93|回复: 19

[编程交流] 坐标、块和文本

[复制链接]

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 06:59:40 | 显示全部楼层 |阅读模式
我正在寻找一个lisp,它将按层导出组成多段线、直线、块、文本弧和其他数据的所有点的笛卡尔坐标到csv文件中。
 
有没有人有这样的Lisp程序或者知道我在哪里能找到?
 
提前感谢!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:03:08 | 显示全部楼层
当你说“所有点”。。。。如果你真的是指“所有点”,那么会有无穷多个点
回复

使用道具 举报

4

主题

26

帖子

22

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 07:06:38 | 显示全部楼层
或者,Lee Mac,我们如何用lisp-rutine将点插入到多段线的所有顶点?
......
然后导出点….:
http://www.cadtutor.net/forum/showpost.php?p=22581&postcount=4
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:12:18 | 显示全部楼层
是的,我相信这是可以做到的——我看看有没有时间。
回复

使用道具 举报

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 07:13:19 | 显示全部楼层
嘿,谢谢你的建议。实际上,我要找的大部分内容都包含在。dxf文件。然而,我想知道是否有一种有效的方法可以格式化dxf数据或将其发送到数据库?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:17:45 | 显示全部楼层
这应该将点插入并导出到csv或txt文件中。
 
[颜色=#990099];;Lee McDonnell 26.07.2009导出的多段线点
defunc:ptExp/doc spc ss file sel pts
vl load com
setqdocvla get ActiveDocument
([/colorvlax get Acad Object[/color)[/color)[/color
spc如果[color]zerop[color][color=BLUE vla get activespace[color]doc b]
如果[color]=[color=BLUE b][color=BLUE b][color=BLUE vla get mspace][color]doc b][color=RE
vla get modelspace[color]doc
vla get paperspacedoc
vla get modelspacedoc
如果[color]和[color][color=BLUE ssget][color][color=深色][#009900]0“*折线”
([/colorsetq[/color文件
([/colorgetfield[/color“输出文件”[/color
if*load*load[csv;txt”9[color=RED
progn
setq*加载文件打开文件“a”
vlax forObjsetqsel b][color=BLUE vla get ACTIVELECTIONSET
doc b]
([/colorsetq[/colorpts
[颜色=红色]([/colorvlax列表->3D点
vlax getObj'坐标
condeq[color=BLUE vla get ObjectName][color]Obj)[/color b] [颜色=红色][/color
mapcar
功能[color]
lambdax
写入行
strcat
rtos[color]car[color]x2[color][color=BLUE chr][color]]44
rtoscadrx22[/color b][color=RED】(chr[/color b]900]44
rtoscaddrx2
vla addPoint[color]spcvlax-3D-point[color]x
princ
strcat“\n>”
关闭文件
vla删除[color]sel
([/colorprinc[/color)[/color)[/color
defun[color]vlax列表->3D点lst x/oLst
而[color]lst
setq[color]oLst
conslist[color=BLUE car][color][color=BLUE cadr][color][lst)([color][如果[color]x0.0[color]caddr[color]lst[oLst
lst如果[color]xcddr[color]cdddr[color][color]lst[color=RED b]
oLst
[code][/code]
回复

使用道具 举报

4

主题

26

帖子

22

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 07:18:54 | 显示全部楼层
李·麦克
我做错什么了吗?!
 
看看这个样本。
在lisp例程中,“提升”不会写入txt文件。
075946zdtvxnffm3kkdkkt.jpg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:23:24 | 显示全部楼层
我假设多段线在0,0。
 
但我可以纠正它。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:26:48 | 显示全部楼层
试试这个:
 
  1. [i][color=#990099];; Polyline Point Exported, by Lee McDonnell 26.07.2009[/color][/i]
  2. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:ptExp [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] doc spc ss file sel pts[b][color=RED])[/color][/b]
  3. [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
  4. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] doc [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b]
  5.              [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-Acad-Object[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  6.        spc [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]zerop[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-activespace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  7.              [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]=[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-mspace[/color][/b] doc[b][color=RED])[/color][/b] :vlax-true[b][color=RED])[/color][/b]
  8.                [b][color=RED]([/color][/b][b][color=BLUE]vla-get-modelspace[/color][/b] doc[b][color=RED])[/color][/b]
  9.                [b][color=RED]([/color][/b][b][color=BLUE]vla-get-paperspace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  10.              [b][color=RED]([/color][/b][b][color=BLUE]vla-get-modelspace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  11. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#ff00ff]"*POLYLINE"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  12.           [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] file
  13.             [b][color=RED]([/color][/b][b][color=BLUE]getfiled[/color][/b] [b][color=#ff00ff]"Output File"[/color][/b]
  14.               [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] *load *load [b][color=#ff00ff]""[/color][/b][b][color=RED])[/color][/b] [b][color=#ff00ff]"csv;txt"[/color][/b] [b][color=#009900]9[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  15.    [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
  16.      [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] *load file file [b][color=RED]([/color][/b][b][color=BLUE]open[/color][/b] file [b][color=#ff00ff]"a"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  17.      [b][color=RED]([/color][/b][b][color=BLUE]vlax-for[/color][/b] Obj [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] sel [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveSelectionSet[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  18.        [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pts
  19.          [b][color=RED]([/color][/b]vlax-list->3D-point
  20.            [b][color=RED]([/color][/b][b][color=BLUE]vlax-get[/color][/b] Obj [b][color=DARKRED]'[/color][/b]Coordinates[b][color=RED])[/color][/b]
  21.              [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ObjectName[/color][/b] Obj[b][color=RED])[/color][/b] [b][color=#ff00ff]"AcDbPolyline"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] Obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b]         
  22.        [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
  23.          [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
  24.            [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b]
  25.              [b][color=RED]([/color][/b][b][color=BLUE]write-line[/color][/b]
  26.                [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b]
  27.                  [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] x[b][color=RED])[/color][/b] [b][color=#009900]2[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]chr[/color][/b] [b][color=#009900]44[/color][/b][b][color=RED])[/color][/b]
  28.                    [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] x[b][color=RED])[/color][/b] [b][color=#009900]2[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]chr[/color][/b] [b][color=#009900]44[/color][/b][b][color=RED])[/color][/b]
  29.                      [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]caddr[/color][/b] x[b][color=RED])[/color][/b] [b][color=#009900]2[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] file[b][color=RED])[/color][/b]
  30.              [b][color=RED]([/color][/b][b][color=BLUE]vla-addPoint[/color][/b] spc [b][color=RED]([/color][/b][b][color=BLUE]vlax-3D-point[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] pts[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  31.      [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b]
  32.        [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\n<< Points from "[/color][/b]
  33.          [b][color=RED]([/color][/b][b][color=BLUE]itoa[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-Count[/color][/b] sel[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=#ff00ff]" Polylines written to file >>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  34.      [b][color=RED]([/color][/b][b][color=BLUE]close[/color][/b] file[b][color=RED])[/color][/b]
  35.      [b][color=RED]([/color][/b][b][color=BLUE]vla-delete[/color][/b] sel[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  36. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  37.       
  38. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] vlax-list->3D-point [b][color=RED]([/color][/b]lst x Obj [b][color=BLUE]/[/color][/b] oLst[b][color=RED])[/color][/b]
  39. [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] lst
  40.    [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] oLst
  41.      [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] lst[b][color=RED])[/color][/b]
  42.                  [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] x [b][color=RED]([/color][/b][b][color=BLUE]vla-get-Elevation[/color][/b] Obj[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]caddr[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] oLst[b][color=RED])[/color][/b]
  43.          lst [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] x cddr cdddr[b][color=RED])[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  44. oLst[b][color=RED])[/color][/b]
回复

使用道具 举报

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 07:29:38 | 显示全部楼层
谢谢,但它给了我以下错误消息:
错误:输入时虚线对中有额外的CDR
 
此外,这只会抓取多段线吗?我的画有几条线、几条弧和一点文字。我需要的大部分信息都在。dxf文件。。。有没有一种好方法可以将这些信息直接从AutoCAD导出到数据库?
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 11:16 , Processed in 0.386695 second(s), 74 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表