乐筑天下

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

[编程交流] 污垢/土壤图案填充LISP

[复制链接]

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:10:42 | 显示全部楼层
 
 
我这边没有错,代码只创建了一个像下面这样的地球舱口。
113838necfef5eegam552f.jpg
回复

使用道具 举报

18

主题

58

帖子

41

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
91
发表于 2022-7-6 11:15:44 | 显示全部楼层
113840raqhha6x66l3uzqx.jpg
命令:接地
指定图案填充宽度:50
指定图案填充比例:50
指定图案填充角度:
指定第一个点:
指定第二点:nea到
地球。lsp已成功完成,现在将恢复您的设置。
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:17:45 | 显示全部楼层
 
 
我只是用您使用的相同值进行了测试,没有出现问题。我不知道你是怎么做到的。
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:21:48 | 显示全部楼层
好的,我明白了。您从一个非常大的图案填充设置切换回一个更小的设置。
我不知道该怎么办,因为手动运行hatch命令时也会发生这种情况。如果图纸已关闭
然后重启,一切似乎又开始了。我无法理解你为什么要从一个极端走向另一个极端。
我希望能找到一个解决方法,但在使用时,应该使用一些常见的acad常识。也许舱口的entmake是
一个更好的主意。
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:23:25 | 显示全部楼层
感谢您测试autolisp,
 
我想我已经解决了这个问题。我使用entmake创建图案填充,而不是命令调用。从一个极端到另一个极端,现在似乎没有问题。还要注意,代码运行得更快。
 
世界lsp
 
  1. ;/////////////////////////////////////////////////////////////////////////////////////////
  2. ;
  3. ; Main Function.
  4. ;
  5. ;
  6. (defun C:EARTH (/ CL01 CL02 CPS DEG# DLEN E01 HANG HPRP HSCL HWID RAD# PT01 PT02 PT03 PT04 SUS)
  7. (setq SUS_LST (list "cmdecho" "orthomode" "blipmode" "angbase" "angdir" "aunits" "clayer"))
  8. (setq SUS (mapcar 'getvar SUS_LST))
  9. (setq TERR *error*)
  10. (setq *error* EARTH_ET)
  11. (or H:PRP (setq H:PRP "EARTH"))      ;Default Hatch Pattern
  12. (or H:WID (setq H:WID 6))            ;Default Hatch Width
  13. (or H:SCL (setq H:SCL 6))            ;Default Hatch Scale
  14. (or H:ANG (setq H:ANG 45))           ;Default Hatch Angle
  15. (setq H:WID
  16.    (cond
  17.      ((getint (strcat "\nSpecify hatch width. <"(rtos H:WID 2 0)">: ")))(T H:WID)))
  18. (setq H:SCL
  19.    (cond
  20.      ((getint (strcat "\nSpecify hatch scale. <"(rtos H:SCL 2 0)">: ")))(T H:SCL)))
  21. (setq H:ANG
  22.    (cond
  23.      ((getint (strcat "\nSpecify hatch angle. <"(rtos H:ANG 2 0)">: ")))(T H:ANG)))
  24. (setq HPRP H:PRP
  25.        HSCL H:SCL
  26.        HWID H:WID
  27.        HANG (EARTH_DTR H:ANG)
  28.        CL01 (getpoint "\nSpecify first point: ")
  29.        CL02 (getpoint CL01 "\nSpecify second point: ")
  30.        RAD# (angle CL01 CL02)
  31.        DEG# (EARTH_RTD RAD#)
  32.        DLEN (distance CL01 CL02)
  33.        CL01 (trans CL01 1 0)
  34.        CL02 (trans CL02 1 0)
  35.        PT01 CL01
  36.        PT02 (polar PT01 (EARTH_DTR (+ DEG#   0)) DLEN)
  37.        PT03 (polar PT01 (EARTH_DTR (+ DEG# 270)) HWID)
  38.        PT04 (polar PT02 (EARTH_DTR (+ DEG# 270)) HWID))
  39. (EARTH_CPS)
  40. (EARTH_ML "HATCH" 1 "Continuous" 18) ;Set layer name, color, linetype, & lineweight
  41. (setvar "clayer" "HATCH")            ;Set HATCH layer current
  42. (entmake
  43.    (list
  44.      (cons 0   "LWPOLYLINE")
  45.      (cons 100 "AcDbEntity")
  46.      (cons 67   0)
  47.      (cons 410 "Model")
  48.      (cons 8   "0")
  49.      (cons 100 "AcDbPolyline")
  50.      (cons 90   4)
  51.      (cons 70   1)
  52.      (cons 43   0.0)
  53.      (cons 38   0.0)
  54.      (cons 39   0.0)
  55.      (cons 10   PT01)
  56.      (cons 40   0.0)
  57.      (cons 41   0.0)
  58.      (cons 42   0.0)
  59.      (cons 10   PT02)
  60.      (cons 40   0.0)
  61.      (cons 41   0.0)
  62.      (cons 42   0.0)
  63.      (cons 10   PT04)
  64.      (cons 40   0.0)
  65.      (cons 41   0.0)
  66.      (cons 42   0.0)
  67.      (cons 10   PT03)
  68.      (cons 40   0.0)
  69.      (cons 41   0.0)
  70.      (cons 42   0.0)
  71.      (cons 210 (list 0.0 0.0 1.0))))
  72. (setq E01 (entlast))
  73. (entmake
  74.    (list
  75.      (cons 0   "HATCH")
  76.      (cons 100 "AcDbEntity")
  77.      (cons 67   0)
  78.      (cons 410 "Model")
  79.      (cons 8   "HATCH")
  80.      (cons 100 "AcDbHatch")
  81.      (cons 10  (list  0.0 0.0 0.0))
  82.      (cons 210 (list  0.0 0.0 1.0))
  83.      (cons 2    HPRP)
  84.      (cons 70   0)
  85.      (cons 71   0)
  86.      (cons 91   1)
  87.      (cons 92   1)
  88.      (cons 93   4)
  89.      (cons 72   1)
  90.      (cons 10   PT01)
  91.      (cons 11   PT02)
  92.      (cons 72   1)
  93.      (cons 10   PT02)
  94.      (cons 11   PT04)
  95.      (cons 72   1)
  96.      (cons 10   PT04)
  97.      (cons 11   PT03)
  98.      (cons 72   1)
  99.      (cons 10   PT03)
  100.      (cons 11   PT01)
  101.      (cons 97   0)
  102.      (cons 75   0)
  103.      (cons 76   1)
  104.      (cons 52   HANG)
  105.      (cons 41   HSCL)
  106.      (cons 77   0)
  107.      (cons 78   6)
  108.      (cons 53   0.785398)
  109.      (cons 43   0.0)
  110.      (cons 44   0.0)
  111.      (cons 45   2.22045e-016)
  112.      (cons 46   2.12132)
  113.      (cons 79   2)
  114.      (cons 49   1.5)
  115.      (cons 49  -1.5)
  116.      (cons 53   0.785398)
  117.      (cons 43  -0.397748)
  118.      (cons 44   0.397748)
  119.      (cons 45   2.22045e-016)
  120.      (cons 46   2.12132)
  121.      (cons 79   2)
  122.      (cons 49   1.5)
  123.      (cons 49  -1.5)
  124.      (cons 53   0.785398)
  125.      (cons 43  -0.795495)
  126.      (cons 44   0.795495)
  127.      (cons 45   2.22045e-016)
  128.      (cons 46   2.12132)
  129.      (cons 79   2)
  130.      (cons 49   1.5)
  131.      (cons 49  -1.5)
  132.      (cons 53   2.35619)
  133.      (cons 43  -0.795495)
  134.      (cons 44   1.06066)
  135.      (cons 45  -2.12132)
  136.      (cons 46   4.44089e-016)
  137.      (cons 79   2)
  138.      (cons 49   1.5)
  139.      (cons 49  -1.5)
  140.      (cons 53   2.35619)
  141.      (cons 43  -0.397748)
  142.      (cons 44   1.45841)
  143.      (cons 45  -2.12132)
  144.      (cons 46   4.44089e-016)
  145.      (cons 79   2)
  146.      (cons 49   1.5)
  147.      (cons 49  -1.5)
  148.      (cons 53   2.35619)
  149.      (cons 43   1.11022e-016)
  150.      (cons 44   1.85616)
  151.      (cons 45  -2.12132)
  152.      (cons 46   4.44089e-016)
  153.      (cons 79   2)
  154.      (cons 49   1.5)
  155.      (cons 49  -1.5)
  156.      (cons 98   1)
  157.      (cons 10  (list  0.0 0.0 0.0))))
  158. (command "._erase" E01 "")
  159. (setenv "MaxHatch" "100")
  160. (EARTH_RUS)
  161. (princ))
  162. (princ)
  163. (princ "\nEARTH.lsp loaded... Type EARTH to start.")
  164. ;
  165. ;/////////////////////////////////////////////////////////////////////////////////////////
  166. ;
  167. ; Degrees To Radians.
  168. ;
  169. (defun EARTH_DTR (DEG#)(* pi (/ DEG# 180.0)))
  170. ;
  171. ;/////////////////////////////////////////////////////////////////////////////////////////
  172. ;
  173. ; Radians To Degrees.
  174. ;
  175. (defun EARTH_RTD (RAD#)(* 180.0 (/ RAD# pi)))
  176. ;
  177. ;/////////////////////////////////////////////////////////////////////////////////////////
  178. ;
  179. ; Make Layer.
  180. ;
  181. (defun EARTH_ML (LNAM LCLR LTYP LWGT)
  182. (if (null (tblsearch "layer" LNAM))
  183.    (entmake
  184.      (list
  185.        (cons   0 "LAYER")
  186.        (cons 100 "AcDbSymbolTableRecord")
  187.        (cons 100 "AcDbLayerTableRecord")
  188.        (cons   2  LNAM)
  189.        (cons  70  0)
  190.        (cons  62  LCLR)
  191.        (cons   6  LTYP)
  192.        (cons 290  1)
  193.        (cons 370  LWGT))))
  194. (princ))
  195. (princ)
  196. ;
  197. ;/////////////////////////////////////////////////////////////////////////////////////////
  198. ;
  199. ; Change Program Settings.
  200. ;
  201. (defun EARTH_CPS ()
  202. (setq CPS (list 0 1 0 0 0 0))
  203. (mapcar (function setvar)(list "cmdecho" "orthomode" "blipmode" "angbase" "angdir" "aunits") CPS)
  204. (princ))
  205. (princ)
  206. ;
  207. ;
  208. ;/////////////////////////////////////////////////////////////////////////////////////////
  209. ;
  210. ; Restore User Settings.
  211. ;
  212. (defun EARTH_RUS ()
  213. (setq *error* TERR)
  214. (if SUS (mapcar 'setvar SUS_LST SUS))
  215. (princ "\nEARTH.lsp has completed successfully and will now restore your settings.")
  216. (princ))
  217. (princ)
  218. ;
  219. ;/////////////////////////////////////////////////////////////////////////////////////////
  220. ;
  221. ; Error Trap.
  222. ;
  223. (defun EARTH_ET (ERRORMSG)
  224. (command nil nil nil)
  225. (if (not (member ERRORMSG '("console break" "Function cancelled")))
  226.    (princ (strcat "\nError:" ERRORMSG)))
  227. (if SUS (mapcar 'setvar SUS_LST SUS))
  228. (princ "\nEARTH.lsp has encountered a user error!")
  229. (princ "\nProgram will now restore your settings and exit.")
  230. (terpri)
  231. (setq *error* TERR)
  232. (princ))
  233. (princ)
  234. ;
  235. ;/////////////////////////////////////////////////////////////////////////////////////////
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:26:50 | 显示全部楼层
消除所有命令调用。这是一个entmake代码。看来entmake值得这么麻烦。
请欣赏。
 
世界lsp
  1. ;/////////////////////////////////////////////////////////////////////////////////////////
  2. ;
  3. ; Main Function.
  4. ;
  5. ;
  6. (defun C:EARTH (/ CL01 CL02 CPS DEG# DLEN E01 HANG HPRP HSCL HWID RAD# PT01 PT02 PT03 PT04 SUS)
  7. (setq SUS_LST (list "cmdecho" "orthomode" "blipmode" "angbase" "angdir" "aunits" "clayer"))
  8. (setq SUS (mapcar 'getvar SUS_LST))
  9. (setq TERR *error*)
  10. (setq *error* EARTH_ET)
  11. (or H:PRP (setq H:PRP "EARTH"))      ;Default Hatch Pattern
  12. (or H:WID (setq H:WID 6))            ;Default Hatch Width
  13. (or H:SCL (setq H:SCL 6))            ;Default Hatch Scale
  14. (or H:ANG (setq H:ANG 45))           ;Default Hatch Angle
  15. (setq H:WID
  16.    (cond
  17.      ((getint (strcat "\nSpecify hatch width. <"(rtos H:WID 2 0)">: ")))(T H:WID)))
  18. (setq H:SCL
  19.    (cond
  20.      ((getint (strcat "\nSpecify hatch scale. <"(rtos H:SCL 2 0)">: ")))(T H:SCL)))
  21. (setq H:ANG
  22.    (cond
  23.      ((getint (strcat "\nSpecify hatch angle. <"(rtos H:ANG 2 0)">: ")))(T H:ANG)))
  24. (setq HPRP H:PRP
  25.        HSCL H:SCL
  26.        HWID H:WID
  27.        HANG (EARTH_DTR H:ANG)
  28.        CL01 (getpoint "\nSpecify first point: ")
  29.        CL02 (getpoint CL01 "\nSpecify second point: ")
  30.        RAD# (angle CL01 CL02)
  31.        DEG# (EARTH_RTD RAD#)
  32.        DLEN (distance CL01 CL02)
  33.        CL01 (trans CL01 1 0)
  34.        CL02 (trans CL02 1 0)
  35.        PT01 CL01
  36.        PT02 (polar PT01 (EARTH_DTR (+ DEG#   0)) DLEN)
  37.        PT03 (polar PT01 (EARTH_DTR (+ DEG# 270)) HWID)
  38.        PT04 (polar PT02 (EARTH_DTR (+ DEG# 270)) HWID))
  39. (EARTH_CPS)
  40. (EARTH_ML "HATCH" 1 "Continuous" 18) ;Set layer name, color, linetype, & lineweight
  41. (setvar "clayer" "HATCH")            ;Set HATCH layer current
  42. (entmake
  43.    (list
  44.      (cons 0   "LWPOLYLINE")
  45.      (cons 100 "AcDbEntity")
  46.      (cons 67   0)
  47.      (cons 410 "Model")
  48.      (cons 8   "0")
  49.      (cons 100 "AcDbPolyline")
  50.      (cons 90   4)
  51.      (cons 70   1)
  52.      (cons 43   0.0)
  53.      (cons 38   0.0)
  54.      (cons 39   0.0)
  55.      (cons 10   PT01)
  56.      (cons 40   0.0)
  57.      (cons 41   0.0)
  58.      (cons 42   0.0)
  59.      (cons 10   PT02)
  60.      (cons 40   0.0)
  61.      (cons 41   0.0)
  62.      (cons 42   0.0)
  63.      (cons 10   PT04)
  64.      (cons 40   0.0)
  65.      (cons 41   0.0)
  66.      (cons 42   0.0)
  67.      (cons 10   PT03)
  68.      (cons 40   0.0)
  69.      (cons 41   0.0)
  70.      (cons 42   0.0)
  71.      (cons 210 (list 0.0 0.0 1.0))))
  72. (setq E01 (entlast))
  73. (entmake
  74.    (list
  75.      (cons 0   "HATCH")
  76.      (cons 100 "AcDbEntity")
  77.      (cons 67   0)
  78.      (cons 410 "Model")
  79.      (cons 8   "HATCH")
  80.      (cons 100 "AcDbHatch")
  81.      (cons 10  (list  0.0 0.0 0.0))
  82.      (cons 210 (list  0.0 0.0 1.0))
  83.      (cons 2    HPRP)
  84.      (cons 70   0)
  85.      (cons 71   0)
  86.      (cons 91   1)
  87.      (cons 92   1)
  88.      (cons 93   4)
  89.      (cons 72   1)
  90.      (cons 10   PT01)
  91.      (cons 11   PT02)
  92.      (cons 72   1)
  93.      (cons 10   PT02)
  94.      (cons 11   PT04)
  95.      (cons 72   1)
  96.      (cons 10   PT04)
  97.      (cons 11   PT03)
  98.      (cons 72   1)
  99.      (cons 10   PT03)
  100.      (cons 11   PT01)
  101.      (cons 97   0)
  102.      (cons 75   0)
  103.      (cons 76   1)
  104.      (cons 52   HANG)
  105.      (cons 41   HSCL)
  106.      (cons 77   0)
  107.      (cons 78   6)
  108.      (cons 53   0.785398)
  109.      (cons 43   0.0)
  110.      (cons 44   0.0)
  111.      (cons 45   2.22045e-016)
  112.      (cons 46   2.12132)
  113.      (cons 79   2)
  114.      (cons 49   1.5)
  115.      (cons 49  -1.5)
  116.      (cons 53   0.785398)
  117.      (cons 43  -0.397748)
  118.      (cons 44   0.397748)
  119.      (cons 45   2.22045e-016)
  120.      (cons 46   2.12132)
  121.      (cons 79   2)
  122.      (cons 49   1.5)
  123.      (cons 49  -1.5)
  124.      (cons 53   0.785398)
  125.      (cons 43  -0.795495)
  126.      (cons 44   0.795495)
  127.      (cons 45   2.22045e-016)
  128.      (cons 46   2.12132)
  129.      (cons 79   2)
  130.      (cons 49   1.5)
  131.      (cons 49  -1.5)
  132.      (cons 53   2.35619)
  133.      (cons 43  -0.795495)
  134.      (cons 44   1.06066)
  135.      (cons 45  -2.12132)
  136.      (cons 46   4.44089e-016)
  137.      (cons 79   2)
  138.      (cons 49   1.5)
  139.      (cons 49  -1.5)
  140.      (cons 53   2.35619)
  141.      (cons 43  -0.397748)
  142.      (cons 44   1.45841)
  143.      (cons 45  -2.12132)
  144.      (cons 46   4.44089e-016)
  145.      (cons 79   2)
  146.      (cons 49   1.5)
  147.      (cons 49  -1.5)
  148.      (cons 53   2.35619)
  149.      (cons 43   1.11022e-016)
  150.      (cons 44   1.85616)
  151.      (cons 45  -2.12132)
  152.      (cons 46   4.44089e-016)
  153.      (cons 79   2)
  154.      (cons 49   1.5)
  155.      (cons 49  -1.5)
  156.      (cons 98   1)
  157.      (cons 10  (list  0.0 0.0 0.0))))
  158. (entdel  E01)
  159. (setenv "MaxHatch" "100")
  160. (EARTH_RUS)
  161. (princ))
  162. (princ)
  163. (princ "\nEARTH.lsp loaded... Type EARTH to start.")
  164. ;
  165. ;/////////////////////////////////////////////////////////////////////////////////////////
  166. ;
  167. ; Degrees To Radians.
  168. ;
  169. (defun EARTH_DTR (DEG#)(* pi (/ DEG# 180.0)))
  170. ;
  171. ;/////////////////////////////////////////////////////////////////////////////////////////
  172. ;
  173. ; Radians To Degrees.
  174. ;
  175. (defun EARTH_RTD (RAD#)(* 180.0 (/ RAD# pi)))
  176. ;
  177. ;/////////////////////////////////////////////////////////////////////////////////////////
  178. ;
  179. ; Make Layer.
  180. ;
  181. (defun EARTH_ML (LNAM LCLR LTYP LWGT)
  182. (if (null (tblsearch "layer" LNAM))
  183.    (entmake
  184.      (list
  185.        (cons   0 "LAYER")
  186.        (cons 100 "AcDbSymbolTableRecord")
  187.        (cons 100 "AcDbLayerTableRecord")
  188.        (cons   2  LNAM)
  189.        (cons  70  0)
  190.        (cons  62  LCLR)
  191.        (cons   6  LTYP)
  192.        (cons 290  1)
  193.        (cons 370  LWGT))))
  194. (princ))
  195. (princ)
  196. ;
  197. ;/////////////////////////////////////////////////////////////////////////////////////////
  198. ;
  199. ; Change Program Settings.
  200. ;
  201. (defun EARTH_CPS ()
  202. (setq CPS (list 0 1 0 0 0 0))
  203. (mapcar (function setvar)(list "cmdecho" "orthomode" "blipmode" "angbase" "angdir" "aunits") CPS)
  204. (princ))
  205. (princ)
  206. ;
  207. ;
  208. ;/////////////////////////////////////////////////////////////////////////////////////////
  209. ;
  210. ; Restore User Settings.
  211. ;
  212. (defun EARTH_RUS ()
  213. (setq *error* TERR)
  214. (if SUS (mapcar 'setvar SUS_LST SUS))
  215. (princ "\nEARTH.lsp has completed successfully and will now restore your settings.")
  216. (princ))
  217. (princ)
  218. ;
  219. ;/////////////////////////////////////////////////////////////////////////////////////////
  220. ;
  221. ; Error Trap.
  222. ;
  223. (defun EARTH_ET (ERRORMSG)
  224. (command nil nil nil)
  225. (if (not (member ERRORMSG '("console break" "Function cancelled")))
  226.    (princ (strcat "\nError:" ERRORMSG)))
  227. (if SUS (mapcar 'setvar SUS_LST SUS))
  228. (princ "\nEARTH.lsp has encountered a user error!")
  229. (princ "\nProgram will now restore your settings and exit.")
  230. (terpri)
  231. (setq *error* TERR)
  232. (princ))
  233. (princ)
  234. ;
  235. ;/////////////////////////////////////////////////////////////////////////////////////////
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:30:10 | 显示全部楼层
上述情况通常可归因于运行OSNAP。
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:32:36 | 显示全部楼层
 
谢谢alan,但我没有设置osnaps,尽管其他人可能已经设置了osnaps。我应该禁用它们,但使用entmake这不是问题。我无法克服执行程序从头到尾的速度差异。这是一个不同的世界。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:35:27 | 显示全部楼层
这就是我的意思。我知道你没有运行它们,但运行OSNAP会引发这样的问题——永远不要低估在每个点输入之前关闭OSNAP或“不”的力量。 
我肯定现在快多了。干得好,我讨厌和entmake打交道。
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:38:34 | 显示全部楼层
 
我完全明白你的意思,我讨厌处理entmake,但归根结底还是值得的。我恐怕一开始就应该这么做。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 16:52 , Processed in 0.396326 second(s), 84 queries .

© 2020-2025 乐筑天下

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