明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: vectra

[资源] 管道求解工具0.61(更新开放命令修改)

  [复制链接]
 楼主| 发表于 2022-1-29 21:40:14 | 显示全部楼层
jialun22 发表于 2021-11-3 09:05
非常强大,想问问是否可以修改快捷

下个版本会考虑这个问题
回复 支持 1 反对 0

使用道具 举报

发表于 2022-2-6 23:03:50 | 显示全部楼层
vectra 发表于 2022-1-29 21:40
下个版本会考虑这个问题

画风管的程序不错,可否分享源程序?
发表于 2022-2-8 11:40:36 | 显示全部楼层
修改弯头半径后,重绘混乱。
 楼主| 发表于 2022-2-8 17:38:26 | 显示全部楼层
bbswen 发表于 2022-2-8 11:40
修改弯头半径后,重绘混乱。

需要删除已有弯头重新连接
发表于 2022-5-17 16:00:19 | 显示全部楼层
牛,暖通专业的支持一下
发表于 2022-5-18 00:17:41 | 显示全部楼层
谢谢分享
不过0.6版本中
点管道连接打断会提示:LIB 未知命令“LIB”。按 F1 查看帮助。

点评

临时用BB命令代替,后续修复  发表于 2022-5-18 17:09
 楼主| 发表于 2022-5-19 12:54:37 | 显示全部楼层

对PSK对象属性操作的一些示例

  1. ;; PSK扩展工具

  2. ;; 清除对象上的所有扩展数据
  3. (defun xdata-clear (/ ss)
  4.   (princ "\n选择要清除扩展数据的对象:")
  5.   (if (setq ss (ssget))
  6.     (progn
  7.       (foreach en (p-ss->enames ss)
  8.   (p-xdata-remove en "*")
  9.       )
  10.     )
  11.   )
  12. )
  13. ;; 匹配扩展数据
  14. (defun xdata-match (/ en ss xdata)
  15.   (if (and (setq en (car (entsel "\n选择源对象:")))
  16.      (princ "\n选择要匹配扩展数据的对象:")
  17.      (setq ss (ssget))
  18.       )
  19.     (progn
  20.       (setq xdata (p-xdata-get-inner en "*"))
  21.       (foreach en (p-ss->enames ss)
  22.   (p-xdata-set-inner en xdata)
  23.       )
  24.     )
  25.   )
  26. )
  27. ;; 删除APPID为"PSK-PATH"中的指定属性"FRIC"
  28. (defun prop-clear (/ ss)
  29.   (princ "\n选择要删除属性的对象:")
  30.   (if (setq ss (ssget))
  31.     (progn
  32.       (foreach en (p-ss->enames ss)
  33.   (p-xprop-remove en "PSK-PATH" "FRIC")
  34.       )
  35.     )
  36.   )
  37. )
  38. ;; 将普通直线转换为"PSK-PATH"对象
  39. (defun convert-path (/ ss)
  40.   (princ "\n选择要转换为路径的对象:")
  41.   (if (setq ss (ssget '((0 . "LINE"))))
  42.     (progn
  43.       (foreach en (p-ss->enames ss)
  44.   (p-xprop-set
  45.     en
  46.     "PSK-PATH"
  47.     '(
  48.       (".TYPE" . "PIPE")
  49.      )
  50.   )
  51.       )
  52.     )
  53.   )
  54. )

  55. (defun exportprop ()
  56.   (setq file (open "C:/1.csv" "w"))
  57.   (foreach e $psk-prop-defination
  58.     (write-line
  59.       (strcat (car e) "," (itoa (cadr e)) "," (caddr e) "," (cadddr e))
  60.       file
  61.     )
  62.   )
  63.   (close file)
  64. )
  65. ;;

  66. ;; 批量设置对象的属性
  67. ;;;(setprop '(lambda (en) (p-xprop-set en "PSK-PART" '("FLR" . 500))))
  68. ;;;(setprop '(lambda (en) (p-xprop-set en "PSK-EQUIP" '("CLD" . 4.3))))
  69. (defun setprop (fun)
  70.   (if (setq ss (ssget))
  71.     (progn
  72.       (foreach en (p-ss->enames ss)
  73.   (apply fun (list en))
  74.       )
  75.     )
  76.   )
  77. )
  78. ;; 批量转换介质(用于版本 0.60前的旧图转换)
  79. (defun convertserv ()
  80.   (if (setq ss (ssget))
  81.     (progn
  82.       (foreach en (p-ss->enames ss)
  83.   (if (setq serv (p-get '(("S" . "SA")
  84.         ("H" . "RA")
  85.         ("X" . "OA")
  86.         ("P" . "EA")
  87.         ("RS" . "RS")
  88.         ("RP" . "RP")
  89.         ("PY" . "SE")
  90.         ("JY" . "PS")
  91.         ("XB" . "MA")
  92.         ("P(Y)" . "EA(SE)")
  93.         ("S(B)" . "SA(MA)")
  94.              )
  95.             (psk-comp-get en "SERV")
  96.            )
  97.       )
  98.     (psk-comp-set en (cons "SERV" serv))
  99.   )
  100.       )
  101.     )
  102.   )
  103. )

  104. ;; 汇总冷负荷
  105. (defun psk-cld-total (/ tot)
  106.   (setq tot 0.)
  107.   (if (setq ss (ssget))
  108.     (progn
  109.       (foreach en (p-ss->enames ss)
  110.   (setq tot (+ tot (p-xprop-get en "PSK-EQUIP" "CLD")))
  111.       )
  112.     )
  113.   )
  114.   (princ tot)
  115. )




  116. ;; 管线辅助工具 2021-4-1
  117. (defun p-groupby (ents sortby / e lst p r)
  118.   (setq  ents (mapcar (function (lambda (e) (list (p-dxf e sortby) e)))
  119.          ents
  120.        )
  121.   ents (vl-sort
  122.          ents
  123.          (function
  124.      (lambda (e1 e2) (< (car e1) (car e2)))
  125.          )
  126.        )
  127.   )
  128.   ;;  分组
  129.   (while ents
  130.     (setq e (car ents)
  131.     p (car e)
  132.     )
  133.     (while (equal (car e) p)
  134.       (setq lst   (cons (cadr e) lst) ;_ 将相同项合并
  135.       ents (cdr ents)
  136.       e   (car ents)
  137.       )
  138.     )
  139.     (setq r   (cons (cons p lst) r)
  140.     lst nil
  141.     )
  142.   )
  143.   r
  144. )
  145. ;; 两条直线连接打断
  146. ;;;(mt-line-interbreak (car (entsel)) (car (entsel)))
  147. (defun mt-line-interbreak (line1 line2 / p)
  148.   (if (and (not (equal line1 line2))
  149.      (setq p (p-line-getinters line1 line2))
  150.       )
  151.     (progn
  152.       (psk-line-breakat line1 p)
  153.       (psk-line-breakat line2 p)
  154.     )
  155.   )
  156. )
  157. ;; 选定一组直线,按图层分组,如果每个图层中的直线是两条,对该两直线进行连接打断操作
  158. (defun mt-lines-interbreak (/ ents)
  159.   (princ "\n选择要连接打断的直线:")
  160.   (if (setq ents (ssget))
  161.     (progn
  162.       (setq ents (p-ss->enames ents)
  163.       ents (p-groupby ents 8)
  164.       )

  165.       (foreach lines ents
  166.   (setq lines (cdr lines))
  167.   (if (= (length lines) 2)
  168.     (progn
  169.       (mt-line-interbreak (car lines) (cadr lines))
  170.     )
  171.   )
  172.       )
  173.     )
  174.   )
  175. )

  176. (defun c:bb (/)
  177.   (p-commandrun '(mt-lines-interbreak))
  178. )
  179. (defun c:xclear  (/)
  180.   (p-commandrun '(xdata-clear))
  181. )
  182. (defun c:xma (/)
  183.   (p-commandrun '(xdata-match))
  184. )
  185. (defun c:convertpath (/)
  186.   (p-commandrun '(convert-path))
  187. )

  188. (defun c:cldtot (/)
  189.   (p-commandrun '(psk-cld-total))
  190. )

  191. ;; 关闭风管相关图层
  192. (defun psk-ductlayeroff  ()
  193.   (command "._-LAYER" "OFF" "M-*风*,M-*烟*" "")
  194. )
  195. ;; 打开风管相关图层
  196. (defun psk-ductlayeron  ()
  197.   (command "._-LAYER" "ON" "M-*风*,M-*烟*" "")
  198. )
发表于 2022-5-19 14:42:06 | 显示全部楼层
提一个小建议,原始命令可以加长吗,特别是2个字母的比如AR、BB、DR、CX等,把acad.pgp里设定的命令别名都占用了。。。

点评

请下载0.61版,并自行修改安装目录下command.lsp及util.lsp两个文件  发表于 2022-5-19 15:15
发表于 2022-5-30 12:30:35 | 显示全部楼层
不错  玩一玩
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 07:11 , Processed in 0.166987 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表