乐筑天下

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

[编程交流] 这个代码很好,我喜欢

[复制链接]

27

主题

146

帖子

119

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
137
发表于 2022-7-5 23:04:33 | 显示全部楼层 |阅读模式
这段代码很好,我喜欢,但需要一点修改。
 
非常感谢你,塔瓦,你能给我接电话吗
 
我不需要选择4个点来填充,只需要选择一个点,(选择内部点)就像内部命令:bhatch一样,我也只需要ANSI131和ANSI137。
 
  1. (defun c:Test (/ *error* dlg p a i l 1p sc e pl h gr rot r)
  2. ;;    Author : Tharwat Al Shoufi 14. Apr. 2014         ;;
  3. (defun *error* (msg)
  4.    (if (< id 0)
  5.      (unload_dialog id)
  6.    )
  7.    (if (and d (setq d (findfile d)))
  8.      (vl-file-delete d)
  9.    )
  10.    (if (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*EXIT*")
  11.      (princ msg)
  12.      (princ (strcat "\nError: " msg))
  13.    )
  14.    (princ)
  15. )
  16. ;;                    ;;
  17. (defun dlg (h / d o id head tail go back)
  18.    (if (and (setq d (vl-filename-mktemp nil nil ".dcl")) (setq o (open d "w")))
  19.      (progn (setq head "test : dialog { label = "Hatch Control";"
  20.                   tail ": button { label = "Exit"; key = "esc"; width = 12; height = 2; fixed_width = true; alignment = centered;
  21.             is_default = true; is_cancel = true;}"
  22.             )
  23.             (if h
  24.               (write-line
  25.                 (strcat
  26.                   head ": button { label = "ANSI37"; key = "i37"; width = 10; height = 2.5;} spacer; "
  27.                   ": button { label = "ANSI31"; key = "i31"; width = 10; height = 2.5;} spacer; " tail "}"
  28.                  )
  29.                 o
  30.               )
  31.               (write-line
  32.                 (strcat
  33.                   head ": boxed_column { label = "Controls"; : text { label = "Scale";}"
  34.                   ": row { : button { label = "+"; key = "isc"; width = 2;}"
  35.                   ": button { label = "-"; key = "dsc"; width = 2;}}" "spacer; : text { label = "Rotation";}"
  36.                   ": row { : button { label = "+"; key = "iro"; width = 2;}"
  37.                   ": button { label = "-"; key = "dro"; width = 2;}}} spacer;" tail "}"
  38.                  )
  39.                 o
  40.               )
  41.             )
  42.             (close o)
  43.      )
  44.    )
  45.    (if (or (not d)
  46.            (> 0 (setq id (load_dialog d)))
  47.            (not (new_dialog
  48.                   "test"
  49.                   id
  50.                   ""
  51.                   (if *loc*
  52.                     *loc*
  53.                     '(-1 -1)
  54.                   )
  55.                 )
  56.            )
  57.        )
  58.      (progn (if (< id 0)
  59.               (unload_dialog id)
  60.             )
  61.             (if (and d (setq d (findfile d)))
  62.               (vl-file-delete d)
  63.             )
  64.      )
  65.      (progn
  66.        (action_tile "i37" "(setq go "ANSI37") (done_dialog)")
  67.        (action_tile "i31" "(setq go "ANSI31") (done_dialog)")
  68.        (if (eq *pat* "ANSI37")
  69.          (mapcar '(lambda (u) (mode_tile u 1)) (list "iro" "dro"))
  70.        )
  71.        (action_tile
  72.          "iro"
  73.          "(if (>= (setq rot (+ rot (/ pi 12.))) (+ pi pi))
  74.                               (setq rot (/ pi 12.)) rot)(setq r t *loc* (done_dialog))"
  75.        )
  76.        (action_tile
  77.          "dro"
  78.          "(if (>= (setq rot (- rot (/ pi 12.))) (+ pi pi))
  79.                               (setq rot (/ pi 12.)) rot)(setq r t *loc* (done_dialog))"
  80.        )
  81.        (action_tile "isc" "(setq sc (+ sc 0.5) back t *loc* (done_dialog))")
  82.        (action_tile
  83.          "dsc"
  84.          "(if (<= (setq sc (- sc 0.5)) 0.)(setq sc 0.5) sc)(setq back t *loc* (done_dialog))"
  85.        )
  86.        (action_tile "esc" "(setq back nil r nil)(done_dialog)")
  87.        (start_dialog)
  88.        (unload_dialog id)
  89.        (vl-file-delete d)
  90.      )
  91.    )
  92.    (cond ((and back) (vla-put-patternscale v sc) (vla-update v) (dlg nil))
  93.          ((and r) (vla-put-PatternAngle v rot) (vla-update v) (dlg nil))
  94.          (t nil)
  95.    )
  96.    go
  97. )
  98. ;;                        ;;
  99. (if (eq 4 (logand 4 (cdr (assoc 70 (entget (tblobjname "LAYER" (getvar 'CLAYER)))))))
  100.    (alert "Current layer is LOCKED ! Unlock and Try again .")
  101.    (if (and (setq *pat* (dlg t)) (setq p (getpoint "\n Specify point < 1 > :")))
  102.      (progn (setq v   nil
  103.                   a   p
  104.                   i   1
  105.                   sc  1.0
  106.                   rot 0.
  107.                   l   (cons p l)
  108.             )
  109.             (while (/= (length l) 4)
  110.               (setq 1p (getpoint p (strcat "\n Next point < " (itoa (setq i (1+ i))) " > :")))
  111.               (setq l (cons 1p l)
  112.                     p 1p
  113.               )
  114.             )
  115.             (setq e (entmakex
  116.                       (append (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") '(70 . 1) '(90 . 4))
  117.                               (mapcar '(lambda (u) (cons 10 u)) (cons a l))
  118.                       )
  119.                     )
  120.             )
  121.             (setq pl (entlast))
  122.             (command "_.-hatch" "S" e "" "P" *pat* 1.0 0.0 "")
  123.             (setq h (entlast))
  124.             (vla-put-AssociativeHatch (setq v (vlax-ename->vla-object h)) :vlax-false)
  125.             (entdel e)
  126.             (if (not (eq pl h))
  127.               (dlg nil)
  128.             )
  129.      )
  130.    )
  131. )
  132. (princ)
  133. )
  134. (vl-load-com)
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 23:14:36 | 显示全部楼层
听起来像是可以用宏处理的东西。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-5 23:17:27 | 显示全部楼层
 
我个人更喜欢一个简单的插件,但每个插件都是自己的。
回复

使用道具 举报

10

主题

895

帖子

887

银币

初来乍到

Rank: 1

铜币
49
发表于 2022-7-5 23:23:54 | 显示全部楼层
 
我同意,只需从工具选项板中进行简单的拖放,您就完成了。
回复

使用道具 举报

27

主题

146

帖子

119

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
137
发表于 2022-7-5 23:29:16 | 显示全部楼层
修改它会很困难吗
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 23:35:14 | 显示全部楼层
[code](定义c:测试(/*错误*cm id d dlg p sc h ht gr rot r);;作者:Tharwat Al-Shoufi 14。2014年4月;;(defun*error*(msg)(if(<id 0)(unload_dialog id))(if(and d(setq d(findfile d)))(vl file delete d))(if cm(setvar'CMDECHO cm))(if(wcmatch(strcase msg)“*BREAK*,*CANCEL*,*EXIT*”(princ msg)(princ(strcat“\error:”msg)))(princ));;(defun dlg(h/o head-tail-back)(if(and(setq d(vl filename mktemp nil nil.dcl))(setq o(open d“w”)))(progn(setq head“test:对话框{label=\”Hatch Control\“;”尾部“:按钮{label=\“Exit\”;键=\“esc\”;宽度=12;高度=2;固定宽度=true;对齐=居中;is\u default=true;is\u cancel=true;}”)(如果h(写线(strcat头):按钮{label=\“ANSI37\”键=\“i37\”,宽度=10;高度=2.5;}垫片;“”:按钮{label=\“ANSI31\”键=\“i31\”宽度=10;高度=2.5;}垫片;“tail”})o)(写入行(strcat head):装箱列{label=\“Controls\”;:文本{label=\“Scale\”;}“”:行{:按钮{label=\“+\”键=\“isc\”宽度=2;}“”:按钮{label=\“-\”键=\“dsc\”宽度=2;}}}“”垫片;:文本{label=\“Rotation\”;}“”:行{:按钮{label=\“+\”键=\“iro\”宽度=2;}“”:按钮{label=\“-\”键=\“dro\”宽度=2;}}}}垫片;“tail”}“)o))(close o))(if(or(not d)(>0(setq id(load\u dialog d))(not(new\u dialog“test”id”“(if*loc**loc*'(-1-1)))(progn(if(<id 0)(unload\u dialog id))(if(and d(setq d(findfile d)))(vl file delete d))(progn(action\u tile“i37”“(setq go“ANSI37”“)(done\u dialog)”)(action\u tile“i31”“(setq go“ANSI31”“)(done\u dialog)”(if(eq*pat*“ANSI37”)(mapcar(lambda(u)(mode\u tile u 1))(list“iro”“dro”))(action_tile“iro”“(if(>=(setq rot(+rot(/pi 12)))(+pi-pi))(设置旋转(/pi 12)rot)(setq r t*loc*(done\u dialog)))(action\u tile“dro”“(if(>=(setq rot(-rot(/pi 12)))(+pi-pi))(设置旋转(/pi 12)rot)(setq r t*loc*(done\u dialog))“”(action\u tile“isc”“(setq sc(+sc 0.5)back t*loc*(done\u dialog))“”(action\u tile“dsc”“(如果(
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 23:46:16 | 显示全部楼层
不,不会,但有时打桩机压得过重时,锤子也可以。
 
换句话说,lisp并不是每个问题的答案,尽管许多用户认为它是。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 23:55:54 | 显示全部楼层
 
不客气,谢谢你的好话。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:06:42 | 显示全部楼层
 
 
 
..........
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 03:31 , Processed in 0.419694 second(s), 70 queries .

© 2020-2025 乐筑天下

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