明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 半听可乐

编程申请:以块中心画直径为25米的圆,圆的交集内填充阴影或颜色,鼠标左键单击退出…

  [复制链接]
 楼主| 发表于 2012-12-14 09:18:58 | 显示全部楼层
阿然 发表于 2012-12-13 17:26
虽然解决了,附上我按照gu版给的思路写的代码,争取顶到50楼看看GU版的代码。输入消防栓块名(可以使用*来代 ...

感谢关注!
回复

使用道具 举报

发表于 2012-12-19 11:51:09 | 显示全部楼层
本帖最后由 wowan1314 于 2013-6-8 11:19 编辑

源码上传上来。我又略微调整了下。还有什么意见就楼主自己调整吧!

话说怎么还没50楼!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2012-12-19 17:32:05 | 显示全部楼层
Gu版,43楼了,离50楼也不远了,将就下代码贴出来瞅瞅
回复

使用道具 举报

发表于 2013-1-18 21:19:58 | 显示全部楼层
想看G版的源码!
回复

使用道具 举报

 楼主| 发表于 2013-1-19 08:16:15 | 显示全部楼层
发一个单位上前辈写的相关程序,不带阴影显示交集的(这也是发帖的初衷),让高手来讨论,争取到50楼哈
;;****************************** HYDRAD.LSP ****************************
;;
;;  For AutoCAD R14
;;
;;  本程序显示消火栓保护半径.
;;
;;  by Yu Bin
;;----------------------------------------------------------------------
;;
  (ai_loadapp "FLUSPT" "ai_rtos" "ai_rtos.lsp")
;;
  (if (null YB:HYDRAD_RAD) (setq YB:HYDRAD_RAD 25))
;;
;;========================== The Main Functions ========================
;;
(defun c:hydrad (/ cde blp omd ccl olderr ans ss ss1 rad n)
  (setq cde (getvar "cmdecho")
        blp (getvar "blipmode")
        omd (getvar "osmode")
        ccl (getvar "cecolor")
  )
;;
;; Internal error handler
;;
(defun hr_err (s)
  (if (/= s "Function cancelled")
    (princ (strcat "\nError: " s))
  )
  (setvar "blipmode" blp)
  (setvar "osmode" omd)
  (setvar "cecolor" ccl)
  (if ss1 (command "_.ERASE" ss1 ""))
  (command "_.UNDO" "_END")
  (setvar "cmdecho" cde)
  (setq *error* olderr)
  (princ)
)
;;
  (setq olderr *error*  *error* hr_err)
  (setvar "cmdecho" 0)
  (command "_.UNDO" "_BEGIN")
  (setvar "blipmode" 0)
  (setvar "osmode" 0)
  (setvar "cecolor" "11")
  (setq rad (getreal (strcat "\n保护半径 (m) <" (ai_rtos YB:HYDRAD_RAD) ">: ")))
  (if rad (setq YB:HYDRAD_RAD rad))
  (initget "A")
  (setq ans (getkword "\n全部A/<选择消火栓>: "))
  (if (= ans "A")
    (setq ss (ssget "X" '((0 . "INSERT") (2 . "J_XHS1,J_XHS2"))))
    (setq ss (ssget '((0 . "INSERT") (2 . "J_XHS1,J_XHS2"))))
  )
  (if ss
    (progn
     (setq rad (* YB:HYDRAD_RAD 1000)
            ss1 (ssadd)
            loop T
            n 0
      )
      (repeat (sslength ss)
        (command "_.CIRCLE" (ai_val 10 (entget (ssname ss n))) rad)
        (ssadd (entlast) ss1)
        (setq n (1+ n))
      )
      (princ "\n按任意键结束.")
      (while loop
        (setq n (car (grread T)))
        (if (and (/= n 5) (/= n 12)) (progn
          (command "_.ERASE" ss1 "")
          (setq loop nil)
        ))
      )
    )
    (princ "\n未找到消火栓.")
  )
  (setvar "blipmode" blp)
  (setvar "osmode" omd)
  (setvar "cecolor" ccl)
  (command "_.UNDO" "_END")
  (setvar "cmdecho" cde)
  (setq *error* olderr)
  (princ)
)
;;======================================================================
(princ)
回复

使用道具 举报

发表于 2013-8-31 22:44:16 | 显示全部楼层
想的到就可以做得到
回复

使用道具 举报

发表于 2013-10-23 14:48:45 | 显示全部楼层
根据wowan1314 的思路用Vlisp重写了程序,可以选择图块作为消火栓的快名,同时支持动态块,速度明显快多了,115个消火栓在我的电脑上大约2~3秒,应该能满足要求。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2013-10-23 14:51:18 | 显示全部楼层
快到50楼了,本来想设置回复可见,但不懂得如何设置,希望下载的能给个回复。谢谢大家。
回复

使用道具 举报

发表于 2013-10-23 14:53:28 | 显示全部楼层
程序是纯源码,希望各位大侠能对程序给个建议。以便完善代码。
回复

使用道具 举报

发表于 2013-12-17 16:21:23 | 显示全部楼层
学习各位跟帖前辈的经验。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 11:42 , Processed in 0.158446 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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