乐筑天下

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

[编程交流] 带文字的自定义多段线

[复制链接]

38

主题

83

帖子

53

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
186
发表于 2022-7-6 08:42:44 | 显示全部楼层 |阅读模式
是否可以创建自定义多段线以将信息附加到其中,如“pipe size”“lenth”“HWS”“HWR”。
我想做的是画一个管道,电线或单线管道布局与上面的普林线信息!甚至编辑信息。最好是画一条线,然后返回并选择一条线,信息将被放置在该线上,或者选择有引线的信息!
谁能帮帮我!
094248vdqzqldypo01gizv.jpg
回复

使用道具 举报

4

主题

24

帖子

16

银币

初来乍到

Rank: 1

铜币
27
发表于 2022-7-6 08:46:38 | 显示全部楼层
正如我所建议的,你们能在这里张贴一张修改前后的图纸吗?我的图纸很容易理解。
 
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-6 08:52:01 | 显示全部楼层
注意:更改了线程标题,使其更具描述性
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 08:56:49 | 显示全部楼层
我不久前为一个人写的
来自讨论。团体论坛
这里有两个Lisp程序的地方,只是稍微修改一下你的西装,
第一个将向选定管道添加扩展数据,
第二个将绘制表格并填充
它们具有扩展数据
 
  1. ;; first lisp
  2. ;; xar.lsp
  3. ;; first select one by one all what you need with accuracy
  4. ;; and add xdata
  5. (vl-load-com)
  6. (defun C:XAR (/        )
  7. (setq osm (getvar "osmode")); store osmode
  8. (setvar "osmode" 512)
  9. (setvar "cmdecho" 0); turn echo off
  10. (regapp "PIPEINFO"); first of register application in ACAD.
  11. ;; This would be stored in the table APPID
  12. ;; loop through selected plines:
  13. (while
  14. (setq pickpt (getpoint "\nPick point on pline (hit Enter to exit loop): ")); pick point on entity
  15. (setq ps  (getreal "\nPipe size: ")
  16.      ln   (getreal "\nLength: ")
  17.      hws (getstring T "\nHWS: ")
  18.      hwr  (getstring T "\nHWR: ")
  19.      )
  20. (setq en (ssname (ssget "C" pickpt pickpt (list (cons 0 "*POLYLINE")))0))
  21. (setq elist (entget en))
  22. ;build extension data
  23. (setq
  24. xdata (list
  25. (list -3 (list "PIPEINFO"
  26.        (cons 1040 ps);real
  27.        (cons 1041 ln);distance
  28.        (cons 1000 hws);string               
  29.        (cons 1000 hwr);string               
  30.        ))
  31. )
  32. )
  33. (setq xdlist (append elist xdata));append extension data to entity list
  34. (entmod xdlist); setting data, modify entity list
  35. (entupd en); update entity, optonal
  36. ); end loop
  37. (setvar "osmode" osm); restore osmode
  38. (setvar "cmdecho" 1); turn echo on
  39. (princ)
  40. )
  41. (prompt
  42. "\n\t\t\t   |-----------------------------|"
  43. )
  44. (prompt
  45. "\n\t\t\t  <|  Start with XAR to execute  |>"
  46. )
  47. (prompt
  48. "\n\t\t\t   |-----------------------------|"
  49. )
  50. (princ)
  51. ;; second lisp
  52. ;; art.lsp
  53. ;; here is follows part to draw the table
  54. (vl-load-com)
  55. ;; local defuns:
  56. ; read extension data:
  57. (defun get_xdata (vobj apname)
  58. (or (vl-load-com))
  59. (if (and vobj apname)
  60. (progn
  61. (vla-getxdata vobj apname 'xtypeOut 'xdataOut)
  62. (setq xtp (vlax-safearray->list xtypeOut))
  63. (setq dtp (mapcar (function (lambda (x)
  64.         (vlax-variant-value x)))
  65.           (vlax-safearray->list xdataOut)))
  66. dtp
  67. )
  68. )
  69. )
  70. ;Then you can get all xdata:
  71. (defun getallxdata (appname / acapp adoc axss table_data tmp)
  72. (or (vl-load-com))
  73. (or acapp (setq acapp (vlax-get-acad-object)))
  74. (or adoc (setq adoc (vla-get-activedocument acapp)))
  75. (if (ssget "X" (list (cons 0  "*POLYLINE")
  76.                (list -3 (list appname))))
  77.    (progn
  78.    (setq axss (vla-get-activeselectionset adoc))
  79.    (vlax-for a axss
  80.      (if
  81.      (setq tmp (cdr (get_xdata a appname)))
  82.      (setq table_data (cons tmp table_data))))))
  83.    (reverse table_data)
  84. )
  85. ;; create table style
  86. (defun make-tablestyle ( name desc txtstyle h1 h2 h3 / tblstyle adoc)
  87. (or (vl-load-com))
  88. (setq
  89.    tblstyle (vla-addobject
  90.      (vla-item (vla-get-dictionaries
  91.             (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  92.             )
  93.           "Acad_Tablestyle"
  94.           )
  95.      name
  96.      "AcDbTableStyle"
  97.      )
  98.    )
  99. (setq acmCol (vla-getinterfaceobject
  100.        (vlax-get-acad-object)
  101.        (strcat "AutoCAD.AcCmColor."
  102.                (substr (getvar "ACADVER") 1 2))))  
  103. (vla-put-name tblstyle name)
  104. (vla-put-headersuppressed tblstyle :vlax-false)
  105. (vla-put-titlesuppressed tblstyle :vlax-false)
  106. (vla-put-description tblstyle desc)
  107. (vla-put-flowdirection tblstyle 0)
  108. (vla-put-bitflags tblstyle 1)
  109. (vla-put-horzcellmargin tblstyle (/ h3 5))  
  110. (vla-put-vertcellmargin tblstyle (/ h3 5))
  111. (vla-settextstyle tblstyle 7 txtstyle)
  112. (vla-settextheight tblstyle 1 h3)  
  113. (vla-settextheight tblstyle 4 h2)
  114. (vla-settextheight tblstyle 2 h1)
  115. (vla-setrgb acmCol 204 102 0)
  116. (vla-setgridcolor tblstyle 63 7 acmCol)
  117. (vla-setgridvisibility tblstyle 63 7 :vlax-true)
  118. (vla-setgridlineweight  tblstyle 18 7 aclnwt009)
  119. (vla-setgridlineweight tblstyle 45 7 aclnwt050)
  120. (vlax-release-object acmCol)
  121. )
  122. ;==================== * main part * ========================;
  123. ;=========== * create table from extended data * ===========;
  124. (defun C:ART (/ Acmcol Acsp Adoc Axss Col Columns Dht Headers Ipt Objtable Row Rows Table_Data)
  125. (if (< (atof (getvar "ACADVER")) 16.0)
  126. (alert "This routine will work\nfor versions A2005 and higher")
  127. (progn
  128. (alert "\tBe patience\n\tWorks slowly")
  129. (or adoc
  130.    (setq adoc (vla-get-activedocument
  131. (vlax-get-acad-object))))
  132. (or acsp (setq acsp (if (= (getvar "TILEMODE") 0)
  133. (vla-get-paperspace
  134. adoc)
  135. (vla-get-modelspace
  136. adoc))
  137. )
  138. )
  139. (vl-catch-all-apply (function (lambda()
  140. (make-tablestyle "PipeInfo" "Electric Table" "Standard" 10.0 10.0 12.0))))
  141. (setq acmCol (vla-getinterfaceobject
  142.        (vlax-get-acad-object)
  143.        (strcat "AutoCAD.AcCmColor."
  144.                (substr (getvar "ACADVER") 1 2))))
  145. (setq dht (getvar "dimtxt"))
  146. ;;;  (setq lst_count nil)
  147. (setq table_data (getallxdata "PIPEINFO"))
  148. (setq table_data (mapcar (function (lambda(x)
  149.            (mapcar 'vl-princ-to-string x)))
  150.                    table_data))
  151. (setq        columns         (length (car table_data))
  152. rows         (length table_data)
  153. ipt (getpoint "\nUpper left table insertion point: \n")
  154. )
  155.      (setq objtable (vlax-invoke
  156.               acsp
  157.               "AddTable"
  158.               ipt
  159.               (+ 2 rows)
  160.               columns
  161.          ;; rows height (change by suit):
  162.          (* dht 1.667);28
  163.          ;; columns width (change by suit):
  164.          (* dht 10);50
  165.        )
  166.       )
  167. (vla-put-regeneratetablesuppressed objtable :vlax-true)
  168. (vla-put-titlesuppressed objtable :vlax-false)
  169. (vla-put-headersuppressed objtable :vlax-false)  
  170. (vla-put-titlesuppressed objtable :vlax-false)
  171. (vla-put-headersuppressed objtable :vlax-false)
  172. (vla-put-horzcellmargin objtable (* dht 0.5))
  173. (vla-put-vertcellmargin objtable (* dht 0.5))
  174. (vla-put-layer objtable "0")
  175. (vla-settextstyle objtable 2 "Standard")
  176. (vla-settextstyle objtable 4 "Standard")
  177. (vla-settextstyle objtable 1 "Standard")
  178. (vla-setrowheight objtable 1 (* dht 1.5))
  179. (vla-setrowheight objtable 2 (* dht 1.25))
  180. (vla-settextheight objtable 2 (* dht 1.25))
  181. (vla-settextheight objtable 4 dht)
  182. (vla-settextheight objtable 1 dht)
  183. (vla-put-colorindex acmcol 256)
  184. (vla-put-truecolor objtable acmcol)
  185. (vla-setcolumnwidth objtable 0 (* dht 10))
  186. (vla-setcolumnwidth objtable 1 (* dht 15))
  187. (vla-setcolumnwidth objtable 2 (* dht 10))
  188. (vla-setcolumnwidth objtable 3 (* dht 15))
  189. (vla-put-colorindex acmcol 2)
  190. (vla-settext objtable 0 0 "Pipes Info")
  191. (vla-setcelltextheight objtable 0 0 (* dht 1.5))
  192. (vla-setcellcontentcolor objtable 0 0 acmcol)
  193. (vla-put-colorindex acmcol 102)
  194. (setq        headers        '("Pipe Size" "Length" "HWS" "HWR")
  195. )
  196. (setq        col 0
  197. row 1
  198. )
  199. (foreach a headers
  200.    (vla-settext objtable row col a)
  201.    (vla-setcelltextheight objtable row col (* dht 1.25))
  202.    (vla-setcellcontentcolor objtable row col acmcol)
  203.    (setq col (1+ col))
  204. )
  205. (vla-put-colorindex acmcol 40)  
  206. (setq  row 2 col 0)
  207. (foreach i table_data
  208. (vla-setrowheight objtable row (* dht 1.25))  
  209. (setq col 0)
  210. (foreach a i
  211.    (vla-settext objtable row col a)
  212.    (if (/= col 1)
  213.    (vla-setcellalignment objtable row col acMiddleLeft)
  214.    (vla-setcellalignment objtable row col acMiddleCenter))
  215.    (vla-setcellcontentcolor objtable row col acmcol)
  216.    (setq col (1+ col)))
  217.    (setq row (1+ row))
  218.    )
  219. (vla-put-colorindex acmcol 12)
  220. (vla-setcellcontentcolor objtable row 1 acmcol)
  221. (vla-put-regeneratetablesuppressed objtable :vlax-false)
  222. (vl-catch-all-apply
  223.    (function
  224.      (lambda ()
  225. (progn
  226.   (vla-clear axss)
  227.   (vla-delete axss)
  228.   (mapcar 'vlax-release-object (list axss objtable))
  229.   )
  230. )
  231.      )
  232.    )
  233. (vla-regen adoc acactiveviewport)
  234. (alert "Done")
  235. )
  236.    )
  237. (princ)
  238. )
  239. (prompt
  240. "\n\t\t\t   |-----------------------------|"
  241. )
  242. (prompt
  243. "\n\t\t\t  <|  Start with ART to execute  |>"
  244. )
  245. (prompt
  246. "\n\t\t\t   |-----------------------------|"
  247. )
  248. (princ)

 
~'J'~
回复

使用道具 举报

38

主题

83

帖子

53

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
186
发表于 2022-7-6 08:59:26 | 显示全部楼层
谢谢你的代码。
这是你写的代码,它将与什么版本的cad一起工作!
我正在使用autoCAD 2004,当我加载代码并在xar中键入时,我得到的选定pline或line是错误的!
; 错误:错误的DXF组:(-3(“PIPEINFO”(1040.3.0)(1041)(1000)”)(1000。
“HWR”))
 
键入art并出现此错误。
; 错误:ActiveX服务器返回错误:未知名称:“AddTable”
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 09:01:17 | 显示全部楼层
我不确定,但我认为
AcadTable对象嵌入到
AutoCAD仅从A2006版本开始
你需要画一张普通的桌子
使用线条
我有类似的程序可以做到这一点
但我需要时间把它们改写成这样
适合
也许明天我有空做这项工作
后来
 
~'J'~
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 09:03:58 | 显示全部楼层
好的,我必须为你的版本重写它
试试这个
 
  1. ;; xar.lsp
  2. ;; first select one by one all what you need with accuracy
  3. ;; and add xdata
  4. (vl-load-com)
  5. (defun C:XAR (/        )
  6. (setq osm (getvar "osmode")); store osmode
  7. (setvar "osmode" 512)
  8. (setvar "cmdecho" 0); turn echo off
  9. (regapp "PIPEINFO"); first of register application in ACAD.
  10. ;; This would be stored in the table APPID
  11. ;; loop through selected enforcements:
  12. (while
  13. (setq pickpt (getpoint "\nPick point on enforcement: ")); pick point on entity
  14. (setq ps  (getreal "\nPipe size: ")
  15.      ln   (getreal "\nLength: ")
  16.      hws (getstring T "\nHWS: ")
  17.      hwr  (getstring T "\nHWR: ")
  18.      )
  19. (setq en (ssname (ssget "C" pickpt pickpt (list (cons 0 "*POLYLINE")))0))
  20. (setq elist (entget en))
  21. ;build extension data
  22. (setq
  23. xdata (list
  24. (list -3 (list "PIPEINFO"
  25.        (cons 1040 ps);real
  26.        (cons 1041 ln);distance
  27.        (cons 1000 hws);string               
  28.        (cons 1000 hwr);string               
  29.        ))
  30. )
  31. )
  32. (setq xdlist (append elist xdata));append extension data to entity list
  33. (entmod xdlist); setting data, modify entity list
  34. (entupd en); update entity, optonal
  35. ); end loop
  36. (setvar "osmode" osm); restore osmode
  37. (setvar "cmdecho" 1); turn echo on
  38. (princ)
  39. )
  40. (prompt
  41. "\n\t\t\t   |-----------------------------|"
  42. )
  43. (prompt
  44. "\n\t\t\t  <|  Start with XAR to execute  |>"
  45. )
  46. (prompt
  47. "\n\t\t\t   |-----------------------------|"
  48. )
  49. (princ)
  50. ;; second lisp
  51. ;; ptd.lsp
  52. (vl-load-com)
  53. ;; local defuns:
  54. ; read extension data:
  55. (defun get_xdata (vobj apname)
  56. (or (vl-load-com))
  57. (if (and vobj apname)
  58. (progn
  59. (vla-getxdata vobj apname 'xtypeOut 'xdataOut)
  60. (setq xtp (vlax-safearray->list xtypeOut))
  61. (setq dtp (mapcar (function (lambda (x)
  62.         (vlax-variant-value x)))
  63.           (vlax-safearray->list xdataOut)))
  64. dtp
  65. )
  66. )
  67. )
  68. ;Then you can get all xdata:
  69. (defun getallxdata (appname / acapp adoc axss table_data tmp)
  70. (or (vl-load-com))
  71. (or acapp (setq acapp (vlax-get-acad-object)))
  72. (or adoc (setq adoc (vla-get-activedocument acapp)))
  73. (if (ssget "X" (list (cons 0  "*POLYLINE")
  74.                (list -3 (list appname))))
  75.    (progn
  76.    (setq axss (vla-get-activeselectionset adoc))
  77.    (vlax-for a axss
  78.      (if
  79.      (setq tmp (cdr (get_xdata a appname)))
  80.      (setq table_data (cons tmp table_data))))))
  81.    (reverse table_data)
  82. )
  83. (defun C:PTD (/        cnt             com_height          dht               num            p0                 rows              row_height   table_data
  84.         table_headers                  table_height title_height title_text_height              tmp           txt_line
  85.         txt_xpos     wid          wids               x            y)
  86. (setq table_data (getallxdata "PIPEINFO"))
  87. (setq table_data (mapcar (function (lambda(x)
  88.            (mapcar 'vl-princ-to-string x)))
  89.                    table_data))
  90. (setq table_headers
  91. '("Pipe Size" "Length" "HWS" "HWR"))
  92. ;;==================TABLE CALCULATION=====================;;
  93. (setq dht (getvar "textsize")
  94.      title_text_height (* dht 1.5)
  95.      row_height (* dht 2.)
  96.      title_height (* row_height 1.5)
  97.      rows (length table_data))
  98. (setq cnt 0)
  99. (repeat (length table_headers)
  100.    (setq tmp (* (strlen (nth cnt table_headers)) dht 1.25)
  101.   wids (cons tmp wids)
  102.   tmp nil
  103.   cnt (1+ cnt)))
  104. (setq wids (reverse wids)
  105. wid (apply '+ wids))
  106. (setq p0 (getpoint "\nSpecify upper left point of table : \n"))
  107. (setq x (car p0)
  108. y (cadr p0)
  109. txt_xpos (append (list 0.0)(reverse (cdr (reverse wids)))))
  110. ;;========================TITLE=========================;;
  111. (entmake
  112.      (list '(0 . "LINE") (cons 10  p0)
  113.     (cons 11 (list (+ x wid) y))))
  114. (setq y (- y  title_height))
  115. (entmake
  116.      (list '(0 . "LINE") (cons 10  (list x y))
  117.     (cons 11 (list (+ x wid) y))))
  118. (entmake (list '(0 . "TEXT")(cons 1 "Pipes Info")
  119. (cons 10 (list (+ x (/ wid 2)(/ dht 2))
  120.          (+ y (/ dht 2))))
  121. (cons 11 (list (+ x (/ wid 2)(/ dht 2))
  122.          (+ y (/ dht 2))))
  123.    (cons 40 title_text_height) '(71 . 0)'(72 . 1)'(73 . 0)))
  124. ;;========================HEADER=========================;;
  125. (setq cnt 0 y (- y row_height))
  126. (entmake
  127.      (list '(0 . "LINE") (cons 10  (list x y))
  128.     (cons 11 (list (+ x wid) y))))
  129. (repeat (length table_headers)
  130.    (setq x (+ x (nth cnt txt_xpos)))
  131. (entmake (list '(0 . "TEXT")(cons 1 (nth cnt table_headers))
  132. (cons 10 (list (+ x (/ dht 2))
  133.          (+ y (/ dht 2))))
  134.    (cons 40 dht) '(72 . 0)))
  135.    (setq cnt (1+ cnt)))
  136. ;;========================TABLE=========================;;
  137. (setq num 0 x (car p0) y (- y row_height))
  138. (repeat rows
  139.    (entmake
  140.      (list '(0 . "LINE") (cons 10  (list x y))
  141.     (cons 11 (list (+ x wid) y))))
  142.    (setq txt_line (nth num table_data)
  143.   cnt 0)
  144.    (repeat (length txt_line)
  145.      (setq x (+ x (nth cnt txt_xpos)))
  146.      (entmake (list '(0 . "TEXT")(cons 1 (nth cnt txt_line))
  147. (cons 10 (list (+ x (/ dht 2))
  148.          (+ y (/ dht 2))))
  149.    (cons 40 dht) '(72 . 0)))
  150.      (setq cnt (1+ cnt)))
  151.    (setq num (1+ num)
  152.   x (car p0)
  153.   y (- y row_height)))
  154. ;;===============VERTICAL LINES=================;;
  155. (setq table_height (* (1+ rows) row_height)
  156. com_height (+ table_height title_height))
  157. (entmake
  158.      (list '(0 . "LINE") (cons 10  p0)
  159.     (cons 11 (list x (- (cadr p0) com_height)))))
  160. (entmake
  161.      (list '(0 . "LINE") (cons 10  (list (+ x wid)(cadr p0)))
  162.     (cons 11 (list (+ x wid) (- (cadr p0) com_height)))))
  163. (setq txt_xpos (cdr txt_xpos))
  164. (setq cnt 0)
  165. (repeat (length txt_xpos)
  166.    (setq x (+ x (nth cnt txt_xpos)))
  167. (entmake
  168.      (list '(0 . "LINE") (cons 10  (list x (- (cadr p0) title_height )))
  169.     (cons 11 (list x (- (cadr p0) title_height table_height)))))
  170.    (setq cnt (1+ cnt)
  171.   ))
  172.    (alert "Done")
  173. (princ)
  174. )
  175. (prompt
  176. "\n\t\t\t   |-----------------------------|"
  177. )
  178. (prompt
  179. "\n\t\t\t  <|  Start with PTD to execute  |>"
  180. )
  181. (prompt
  182. "\n\t\t\t   |-----------------------------|"
  183. )
  184. (princ)

 
 
~'J'~
回复

使用道具 举报

4

主题

16

帖子

12

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 09:08:07 | 显示全部楼层
非常有趣和有用的lisp。
我有兴趣使用DCL输入数据(见图纸)。
我用的是Acad2008。
顺致敬意,
 
 
 
 
供水网络。图纸
回复

使用道具 举报

4

主题

16

帖子

12

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 09:11:43 | 显示全部楼层
上述问题没有解决方案?
祝你一切顺利
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 09:17:45 | 显示全部楼层
这会让你开始工作,自己休息
我没有时间做这项工作
  1. (vl-load-com)
  2. (defun run-dialog  (leng /)
  3. (setq fn (strcat (getvar "dwgprefix")
  4.     (getvar "dwgname")
  5.     "waterparams.dcl")
  6. fd (open fn "w"))
  7. (mapcar
  8.    (function
  9.      (lambda (x)
  10. (princ x fd)
  11. (princ "\n" fd)
  12. )
  13.      )
  14.    (list
  15.      "water : dialog {label="Parameters";"
  16.      "fixed_width_font=true;"
  17.      ": edit_box{label="Street";"
  18.      "fixed_width_font=true;"
  19.      "key = "street";}"
  20.      ": edit_box{label="Length";"
  21.      "fixed_width_font=true;"
  22.      (strcat "value=" leng ";")
  23.      "key = "leng";}"
  24.      ": list_box {label="Math";"
  25.      "fixed_width_font=true;"
  26.      "key = "math";"
  27.      "multiple_select = false;"
  28.      "height = 3.6;"
  29.      "allow_accept = true;"
  30.      "}"
  31.      ": list_box {label="Dia.";"
  32.      "fixed_width_font=true;"
  33.      "key = "dia";"
  34.      "multiple_select = false;"
  35.      "height = 3.6;"
  36.      "allow_accept = true;"
  37.      "}"
  38.      "ok_cancel;"
  39.      "}"
  40.      )
  41.    )
  42. (close fd)
  43. (princ)
  44. )
  45. (defun C:demo  (/
  46. dcl_id
  47. dial
  48. dia_list
  49. dia_val
  50. en
  51. ent
  52. fn
  53. leng
  54. math_list
  55. math_val
  56. pick)
  57. (vl-load-com)
  58. (while (setq ent (entsel "\nSelect pipe-line (or hit Enter to Exit): "))
  59.    (if
  60.      (member (strcase (cdr (assoc 0 (entget (car ent)))))
  61.       (list "LWPOLYLINE" "SPLINE"))
  62.       (progn
  63. (setq en (car ent))
  64. (setq leng (vlax-curve-getdistatparam en (vlax-curve-getendparam en)))
  65. (run-dialog (rtos leng 2 3))
  66. (if (not (setq dcl_id (load_dialog fn)))
  67.    (exit))
  68. (if (not (new_dialog "water" dcl_id))
  69.    (exit))
  70. (start_list "math")
  71. (mapcar 'add_list
  72.   (mapcar 'vl-princ-to-string
  73.    (setq math_list
  74.    (list 1.05 1.1 1.15 1.2 1.25 1.3 1.35))))
  75. (end_list)
  76. (start_list "dia")
  77. (mapcar 'add_list
  78.   (mapcar 'vl-princ-to-string
  79.    (setq dia_list
  80.    (list 12.0 24.0 36.0 48.0 60.0))))
  81. (end_list)
  82. (action_tile
  83.    "accept"
  84.    (strcat "(progn "
  85.     "(setq str_val (get_tile "street"))"
  86.     "(setq leng_val (get_tile "leng"))"
  87.     "(setq math_val (atoi (get_tile "math")))"
  88.     "(setq dia_val (atoi (get_tile "dia")))"
  89.     "(done_dialog 1))")
  90.    )
  91. (action_tile "cancel" "(done_dialog 0)")
  92. (setq pick (start_dialog))
  93. (unload_dialog dcl_id)
  94. (vl-file-delete fn)
  95. (if (and (= 1 pick) str_val leng_val math_val dia_val)
  96.    (progn
  97.      (alert
  98.        (strcat "Street: "
  99.         (vl-princ-to-string str_val)
  100.         "\n"
  101.         "Length : "
  102.         (vl-princ-to-string (atof leng_val))
  103.         "\n"
  104.         "Math: "
  105.         (vl-princ-to-string (setq mat_val (nth math_val math_list)))
  106.         "\n"
  107.         "Dia : "
  108.         (vl-princ-to-string (setq dia_val (nth dia_val dia_list))))
  109.        )
  110.      ;;...[ rest your code goes here ]...
  111.      )
  112.    )
  113. )
  114.      )
  115.    )
  116. (princ)
  117. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 08:57 , Processed in 0.486885 second(s), 75 queries .

© 2020-2025 乐筑天下

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