乐筑天下

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

[编程交流] 为什么';t此代码r

[复制链接]

3

主题

20

帖子

17

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 06:49:11 | 显示全部楼层
让我把它带给专业人士
 
什么是正确的命令?
 
  1. (defun c:pline-coor ( / *error* data-lst sorted-lst str-lst top-str polys
  2.                                 data cnt obj file-nm tmp item tmp-str fl)
  3. (defun *error* (msg)
  4.    (if(= msg "quit / exit abort")
  5.      (princ "\nNo output file was selected")
  6.      (princ msg)
  7.    )
  8. )
  9. (setq top-str ""
  10.        file-nm (getfiled "Output File" "" "doc" 1)
  11. )
  12. (if(null file-nm)(exit))
  13. (if(setq polys(ssget '((0 . "*POLYLINE"))))
  14.    (repeat(setq cnt(sslength polys))
  15.      (setq obj      (vlax-ename->vla-object
  16.                       (ssname polys
  17.                         (setq cnt(1- cnt))
  18.                       )
  19.                     )
  20.            data-lst (cons
  21.                       (list(vlax-get obj 'Layer)
  22.                       (vlax-get-property obj 'Coordinates)  [color=red]The problem line!![/color]
  23.                      
  24.                       )           
  25.                       data-lst
  26.                     )
  27.      )
  28.    )
  29. )
  30. (while data-lst
  31.    (setq data     (car data-lst)
  32.          data-lst (cdr data-lst)
  33.          tmp      (list data)
  34.    )
  35.    (foreach item data-lst
  36.      (if(=(car item)(car data))
  37.        (setq tmp      (cons item tmp)
  38.              data-lst (vl-remove item data-lst)
  39.        )
  40.      )
  41.    )
  42.    (setq sorted-lst(cons tmp sorted-lst))
  43. )
  44. (setq sorted-lst
  45.    (vl-sort sorted-lst '(lambda(a b)(<(caar a)(caar b))))
  46. )
  47. (foreach item (reverse sorted-lst)
  48.    (setq top-str
  49.      (strcat(caar item)"," top-str)
  50.    )
  51. )
  52. (setq str-lst (cons top-str str-lst)
  53.        cnt     0
  54. )
  55. (repeat(apply 'max(mapcar 'length sorted-lst))
  56.    (setq tmp-str "")
  57.    (foreach item (reverse sorted-lst)
  58.      (setq tmp-str
  59.        (if(setq tmp(nth cnt item))
  60.          (strcat(rtos(cadr tmp)) "," tmp-str)
  61.          (strcat "," tmp-str)
  62.        )
  63.      )
  64.    )
  65.    (setq cnt     (1+ cnt)
  66.          str-lst (cons tmp-str str-lst)
  67.    )
  68. )
  69. (if(setq fl(open file-nm "w"))
  70.    (progn
  71.      (foreach str (reverse str-lst)
  72.        (write-line str fl)
  73.      )
  74.      (close fl)
  75.      (alert(strcat file-nm " was created"))
  76.    )
  77.    (alert "Unable to create file")
  78. )
  79. (princ)
  80. )

 
总之,这一行:
 
  1. (defun vex-plverts(ent / retn listy retDum add1 add2);
  2. (vl-load-com)
  3. (if (= (cdr (assoc 0 (entget ent))) "LWPOLYLINE")
  4.    (progn
  5.      (setq retn nil listy (vlax-safearray->list (vlax-variant-value (vla-get-coordinates (vlax-ename->vla-object ent)))))
  6.      (while (and (setq var1 (car listy)) (setq var2 (cadr listy)))
  7. (setq retn (append retn (list (list var1 var2 0))))
  8. (setq listy (cddr listy)))
  9.      )
  10.    )
  11. retn
  12. ); Returns a list of 3D coordinates defining the vertices of a polygon

 
现在是:
  1. (vlax-get-property obj 'Coordinates)  [color=red]The problem line!![/color]
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 06:53:50 | 显示全部楼层
这已经足够了。
 
  1. (vex-plverts (ssname polys cnt))
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 06:57:29 | 显示全部楼层
目标是将顶点X,Y+layername的值并排导出到DOC或txt,如下所示;
原始样品;
 
交换
(vlax get property obj’Coordinates)问题线!!
 
为此;
 
(vlax get obj’区域)
 
对于take value area+layername,效果良好
 
使用文档的提示:
 
必须将“,”更改为“^t”以将零件号粘贴到excel中。a在excel中创建新的特殊粘贴
使用选项Transpor将行到列的信息更改为更好的查看器。
 
目标是X,Y+层名称
 
感谢您的支持
 
回复

使用道具 举报

3

主题

20

帖子

17

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 07:00:53 | 显示全部楼层
我不知道我做得是否正确,但我在命令行中得到了一些与此相关的结果
“(vex plverts(ssname polys cnt))”
 
但没有层名称。。。
回复

使用道具 举报

3

主题

20

帖子

17

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 07:03:58 | 显示全部楼层
听起来不错,直到你对已经编写的代码进行“否定”后,它才会返回层名称。。。
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 07:08:15 | 显示全部楼层
谢谢你的帮助,Commandobill,很抱歉我的无知,但我想用代码做‘cons’,但我用它实现了自我。
我认为这会更容易。
回复

使用道具 举报

3

主题

20

帖子

17

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 07:09:14 | 显示全部楼层
因为我反对重写东西,几年前我从李那里偷了这个。您的代码似乎按顺序对点进行排序,但您没有说您需要它。如果你这样做,我也可以把它放在这里。
 
[code];;多段线顶点导出器~ Lee McDonnell ~ 26.11.2009(defun c:pExp(/ss tmp i j ent tot dis pt)(vl load com)(if(and(and(setq ss(ssget’((0.*Polyline)))(setq tmp(getfield“Output File”(cond(*load)(”“)”txt;csv“9))(progn(setq*load tmp tmp(open tmp“a”)i-1)(write line“X,Y,Layer”tmp)(while(setq ent(ssname ss(setq i(1+i))))))(No.dll setq tot 0.j(1-(vlax曲线getStartParam ent)))(而(
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 07:13:37 | 显示全部楼层
哦,那个新的我在我的故事里得到了不同的版本。非常相似,只是需要更改层的“距离”非常好,我会试试。
 
不幸的是,像PtManagerV2-4这样的伟大工具。lsp和Geo_Export_v2_6。VLX没有给出这种可能性。
 
非常感谢您的帮助,新的Commandobill先生!!!
 
[code];;多段线顶点导出器~ Lee McDonnell ~ 27.11.2009(defun c:pExp(/*error*ObjRel ss col row ent tot j pt)(vl load com)(defun*error*(e)(ObjRel(list xlApp xlCells))(或(wcmatch(strcase)“*BREAK,*CANCEL*,*EXIT*”)(princ(strcat“\n**error:”e“**”))(princ))(defun ObjRel(lst)(mapcar(function)(lambda(x)(if(and(eq(type x)'VLA-OBJECT)(not(vlax-object-released-p x))(vl catch all apply“vlax release object(list x 107;а)а”)lst)(if(setq i-1 ss(ssget’((0.*POLYLINE”)))(progn(setq xlApp(vlax get or create object“Excel.Application”)xlCells(vlax get property(vlax get property)(vlax get property(vlax invoke方法(vlax get property xlApp“Workbooks”)“Add”)“Sheets”)“Item”1“Cells”)第0列第1行(mapcar(函数(lambda(x)(vlax put property xlCells“Item”行(setq col(1+col))x))'(“x”“Y”“Z”点“Distance”“Total”)(while(setq ent(ssname ss(setq i(1+i))))(setq tot 0.row(1+row)j(1-(vlax curve getStartParam ent)))(while(
回复

使用道具 举报

3

主题

20

帖子

17

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 07:16:59 | 显示全部楼层
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 18:30 , Processed in 0.545891 second(s), 68 queries .

© 2020-2025 乐筑天下

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