明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 17504|回复: 100

跪求一LISP程序

  [复制链接]
发表于 2010-7-1 21:00 | 显示全部楼层 |阅读模式
在CAD中点一根线,而这根线所有连接的封闭图元,全部以填充变色的形式显视出来,点另一根就显视另一根所连接的图元,跪求了,谢谢大家啊,
 楼主| 发表于 2010-7-11 09:19 | 显示全部楼层
有那位高手能帮我搞一个啊,小弟谢过了
发表于 2010-7-12 22:47 | 显示全部楼层

填充的时候要渐变色填充还是一种颜色填充?

 楼主| 发表于 2010-7-14 19:40 | 显示全部楼层

一种颜色

 楼主| 发表于 2010-7-14 19:42 | 显示全部楼层

但是点那根线的时候就就只有那根线所连接的图元变色,很清楚的分变出那根线上所接的东西

发表于 2010-7-15 11:39 | 显示全部楼层
1、文件 Function.fas 可于 http://e.ys168.com/?ls0201 上下载,主要是些通用函数打包 部分来源于明经与网络
2、下载文件 Function.fas 后放于CAD搜索路径
  1. (defun c:test (/ *ERROR*     CP_ENAME  CP_VLA      HATCH_SS
  2.    H_COL      H_LAYER  I      NEWENTLAST
  3.    OBJ      OBJ_BOX  OBJ_CP      OBJ_PL
  4.    OBJ_TYPE    OLDENTLAST  OLDERROR    TEST_ERROR
  5.   )
  6.   (defun test_error (test_error_msg)
  7.     (setq *error* olderror)
  8.     (del_old_hatch h_layer)
  9.   )
  10.   (defun del_old_hatch (layer / OLD_HAT_OBJ)
  11.   (setq old_hat_obj
  12.       (ssget "x" (list (cons 0 "Hatch") (cons 8 layer)))
  13.       )
  14.       (if old_hat_obj
  15. (command "_ERASE" old_hat_obj "")
  16.       )
  17.   )
  18.   (setq h_col 3) ;_定义填充的颜色 1-红 2-黄 3-绿 4-青 5-蓝 6-品红 7-白
  19.   (setq h_layer "填充色20100715") ;_定义填充的图层
  20.   (vl-load-com)
  21.   (setq olderror *error*
  22. *error* test_error)
  23. (if (findfile "Function.fas")
  24. (progn
  25. (load "Function.fas")
  26. (while (and (setq obj (car (entsel "\n选择多段线")))
  27.    (or (=
  28.   (setq obj_type (cdr (assoc 0 (entget obj))))
  29.   "POLYLINE"
  30.        )
  31.        (= obj_type "LWPOLYLINE")
  32.    )
  33.      )
  34. (progn
  35.   (if (= nil (tblsearch "layer" h_layer))
  36.     (command "-layer" "new" h_layer "")
  37.   )
  38.   (del_old_hatch h_layer)
  39.   (setq obj_pl (PL_plist_xy_list obj))
  40.   (setq obj_pl (xyp1-delsame obj_pl))
  41.   (setq obj_box (getbox obj))
  42.   (command "_zoom" (car obj_box) (last obj_box))
  43.   (setq obj_cp (ssget "f" obj_pl '((0 . "*POLYLINE"))))
  44.   (if obj_cp
  45.     (progn
  46.       (if (ssmemb obj obj_cp)
  47. (setq obj_cp (ssdel obj obj_cp))
  48.       )
  49.       (if (> (sslength obj_cp) 0)
  50. (progn
  51.    (setq i -1)
  52.    (setq hatch_ss (ssadd))
  53.    (repeat (sslength obj_cp)
  54.      (setq
  55.        cp_vla (vlax-ename->vla-object
  56.          (setq
  57.     cp_ename (ssname obj_cp
  58.        (setq i (1+ i))
  59.       )
  60.          )
  61.        )
  62.      )
  63.      (if (vlax-curve-isClosed cp_vla)
  64.        (setq hatch_ss (ssadd cp_ename hatch_ss))
  65.      )
  66.    )
  67.    (if (> (sslength hatch_ss) 0)
  68.      (progn
  69.        (setq oldentlast (entlast))
  70.        (command "_hatch" "SOLID" hatch_ss "")
  71.        (setq newentlast (entlast))
  72.        (if (equal oldentlast newentlast)
  73.   (progn
  74.     (alert "\n特殊原因无法填充")
  75.   )
  76.   (progn
  77.     (command "_change" newentlast "" "_p" "_color" h_col
  78.       "")
  79.     (command "_change" newentlast "" "_p" "_layer" h_layer
  80.       "")
  81.   )
  82.        )
  83.      )
  84.    )
  85. )
  86.       )
  87.     )
  88.   )
  89.   (command "_zoom" "_p")
  90. )
  91. )
  92. )
  93. (progn
  94. (alert "\n搜索目录没有找到文件 Function.fas")
  95. )
  96. )
  97.   (setq *error* olderror)
  98.   (del_old_hatch h_layer)
  99.   (princ)
  100. )
 楼主| 发表于 2010-7-16 22:08 | 显示全部楼层
谢谢兄弟啊。在下感激不尽
 楼主| 发表于 2010-7-16 22:35 | 显示全部楼层
兄弟,怎么用不了啊
 楼主| 发表于 2010-7-16 22:36 | 显示全部楼层
拜托再次指导一下
发表于 2010-7-16 23:39 | 显示全部楼层

怎么个用不了?

1、文件 Function.fas 可于 http://e.ys168.com/?ls0201 上下载,主要是些通用函数打包 部分来源于明经与网络

2、下载文件 Function.fas 后放于CAD搜索路径

   Function.fas 文件放在搜索路径了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 09:45 , Processed in 0.211299 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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