乐筑天下

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

[编程交流] 如何向c添加超链接

[复制链接]

42

主题

173

帖子

132

银币

后起之秀

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

铜币
220
发表于 2022-7-5 17:18:12 | 显示全部楼层 |阅读模式
大家好:
此lisp由Tharwat先生在本网站的某个地方开发
 
  1. (defun c:Test (/ s f o)
  2. ;; Tharwat 26. 08. 2015 ;
  3. (princ "\nSelect LWpolylines to export to Excel file :")
  4. (if (and (setq s (ssget '((0 . "LWPOLYLINE"))))
  5.           (setq f (getfiled "Specify File Name" (getvar 'DWGPREFIX) "csv" 1))
  6.           (setq o (open f "w"))
  7.           )
  8.    (progn
  9.      ((lambda (r / e)
  10.         (while (setq e (ssname s (setq r (1+ r))))
  11.           (write-line (rtos (vlax-curve-getdistatparam e (vlax-curve-getendparam e)) 2 4) o)
  12.           ))
  13.        -1)
  14.      (close o)
  15.      )
  16.    )           
  17. (princ)
  18. )

 
 
 
如何将选定多段线的heperlinks添加到导出的csv文件中,以便导出的文件如下所示
 

                               
登录/注册后可看大图

 
 
提前感谢
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:28:49 | 显示全部楼层
你好
在代码上试试这个[未经测试的]mods,然后告诉我:
 
  1. (defun c:Test (/ s f o)
  2. ;; Tharwat 28. 08. 2016 ;
  3. (princ "\nSelect LWpolylines to export to Excel file :")
  4. (if (and (setq s (ssget '((0 . "LWPOLYLINE"))))
  5.           (setq f (getfiled "Specify File Name" (getvar 'DWGPREFIX) "csv" 1))
  6.           (setq o (open f "w"))
  7.           )
  8.    (progn
  9.      (write-line "Polyline Length;Polyline Hyperlink" o)
  10.      ((lambda (r / e l d ur)
  11.         (while (setq e (ssname s (setq r (1+ r))))
  12.           (vlax-for hp (vla-get-hyperlinks (vlax-ename->vla-object e))
  13.             (if (setq ur (vla-get-url hp))
  14.               ur)
  15.             )
  16.           (write-line (strcat (rtos (vlax-curve-getdistatparam e (vlax-curve-getendparam e)) 2 4)
  17.                        ";" (if ur ur "")) o)
  18.    ))
  19. -1)
  20.      (close o)
  21.      )
  22.    )           
  23. (princ)
  24. )(vl-load-com)
回复

使用道具 举报

42

主题

173

帖子

132

银币

后起之秀

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

铜币
220
发表于 2022-7-5 17:35:34 | 显示全部楼层
谢谢tharwat先生。。。但是lisp为csv文件中的超链接导出空单元格
回复

使用道具 举报

42

主题

173

帖子

132

银币

后起之秀

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

铜币
220
发表于 2022-7-5 17:42:09 | 显示全部楼层
你(tharwat先生)写的另一个lisp,我尝试过并添加了提取超链接和长度到表中的部分
 
谢谢塔瓦特先生的Lisp程序和努力
 
  1. (defun c:ltt (/ pt2 pt3 s x y doc objtable numrows rowheight pt1 colwidth curspace)
  2. ;; Tharwat 26. 08. 2015 ;
  3. ;; mods by BIGAL 29.08.2015 now as table
  4. (vl-load-com)
  5. (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  6. (setq curspace (vla-get-modelspace doc))
  7. (setq pt1 (vlax-3d-point (getpoint "\nPick point for top left hand of table:  ")))
  8. ;(princ "\nSelect LWpolylines to export to a Table :")
  9. (setq pt2 (getpoint "Select by fence-line 1st set of entities : "))
  10. (setq pt3 (getpoint pt2 "2nd point of fence-line: ")
  11.        s (ssget "F" (list pt2 pt3))
  12. ) ;_ end of setq
  13. ;(setq s (ssget '((0 . "LWPOLYLINE"))))
  14. (if (/= s nil)
  15.    (progn
  16. ; now do table
  17.    (setq numrows (+ 2 (sslength s)))
  18.    (setq numcolumns 3)
  19.    (setq rowheight 7)
  20.    (setq colwidth 25)
  21.    (setq objtable (vla-addtable curspace pt1 numrows numcolumns rowheight colwidth))
  22.    (vla-settext objtable 0 0 "Pline lengths")
  23.    (vla-setcolumnwidth objtable 0 10)
  24.    (vla-setcolumnwidth objtable 1 25)
  25.    (vla-settext objtable 1 0 "Pline")
  26.    (vla-settext objtable 1 1 "Length")
  27. (vla-settext objtable 1 2 "hyperlinks")
  28.    (vla-SetTextHeight Objtable (+ acDataRow acHeaderRow acTitleRow) 2.5)
  29.    (vla-SetAlignment Objtable acDataRow acMiddleCenter)
  30.    (setq x 1)
  31.    (SETQ Y 2)
  32.    (setq r -1)
  33.    ;((lambda (r / e)
  34.         (while (setq e (vlax-ename->vla-object(ssname s (setq r (1+ r)))))
  35.         (vla-settext objtable Y 0 (rtos x 2 0))        
  36.         (vla-settext objtable Y 1 (rtos  (vla-get-length e)  2 4))
  37.          (setq hypers (vlax-get-property e 'Hyperlinks))
  38.          (vla-settext objtable Y 2 (vlax-get-property (vla-item hypers 0) 'URL))
  39.           ;(setq vlaObj (vlax-ename->vla-object en))
  40.          ;(setq hypers (vlax-get-property e 'Hyperlinks))
  41.         (setq x (1+ x ))
  42.         (setq y (1+ Y ))
  43. ); while
  44.     ; )) ;lambda
  45.      )   ;progn
  46.    (alert "You have not picked any plines run again")
  47.    )     ; if      
  48. (princ)
  49. ) ; defun
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:54:56 | 显示全部楼层
 
你能上传一张样图吗?
回复

使用道具 举报

42

主题

173

帖子

132

银币

后起之秀

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

铜币
220
发表于 2022-7-5 17:59:57 | 显示全部楼层
附着的dwg文件包含具有超链接的多段线,编号从1到8,具有超链接的多段线。图纸
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:10:38 | 显示全部楼层
我更新了上述代码,请重试。
回复

使用道具 举报

42

主题

173

帖子

132

银币

后起之秀

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

铜币
220
发表于 2022-7-5 18:14:43 | 显示全部楼层
谢谢tharwat先生
Lisp程序非常有效
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 18:24:06 | 显示全部楼层
 
非常欢迎你。
谢谢你的回复。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 08:06 , Processed in 0.445004 second(s), 85 queries .

© 2020-2025 乐筑天下

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