乐筑天下

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

[编程交流] 阻止所有点

[复制链接]

57

主题

243

帖子

190

银币

后起之秀

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

铜币
285
发表于 2022-7-6 08:48:46 | 显示全部楼层 |阅读模式
我需要一个例程,允许您在图形中现有的所有点中输入特定块。有人记得这个问题已经在这里讨论过了吗?
回复

使用道具 举报

57

主题

243

帖子

190

银币

后起之秀

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

铜币
285
发表于 2022-7-6 08:58:06 | 显示全部楼层
嗯,我找到了地方。这是某人感兴趣的案例的代码。
  1. ;insert a block on points
  2. (defun c:b2p (/ #cmdecho blkname ss scale idx n entname edata)
  3. (command "undo" "begin")
  4. (setq #cmdecho (getvar "cmdecho"))
  5. (setvar "cmdecho" 0)
  6. (setq blkname (getstring "\n Block name : "))
  7. (if (= blkname "")(setq blkname "Block"))
  8. (setq ss (ssget '((0 . "POINT"))))
  9. (if ss
  10. (progn
  11. (setq scale (getreal "\n Block Scale <1>: "))
  12. (if (= scale nil)(setq scale 1))
  13. (setq idx 0)
  14. (setq n (sslength ss))
  15. (repeat n
  16. (setq entname (ssname ss idx))
  17. (setq edata (entget entname))
  18. (entmake (list (cons 0 "INSERT")
  19. (cons 2 blkname)
  20. (assoc 10 edata)
  21. (assoc 8 edata)
  22. (cons 41 scale)
  23. (cons 42 scale)
  24. (cons 43 scale)
  25. (cons 50 0)
  26. )
  27. )
  28. (entdel entname)
  29. (setq idx (1+ idx))
  30. )
  31. (princ "\n\n Done!")
  32. )
  33. (princ "\n Not point(s) selected(s)!")
  34. )
  35. (setvar "cmdecho" #cmdecho)
  36. (command "undo" "end")
  37. (princ))
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:04:56 | 显示全部楼层
我的方法。。。
 
  1. (defun c:TesT (/ Blkname ss)
  2. ;; Tharwat 12. Oct. 2011 ;;
  3. (if (and (setq Blkname (getstring T "\n Name of Block :"))
  4.           (tblsearch "BLOCK" Blkname)
  5.           (setq ss (ssget '((0 . "POINT"))))
  6.      )
  7.    ((lambda (i / ss1 e in x)
  8.       (while
  9.         (setq ss1 (ssname ss (setq i (1+ i))))
  10.          (setq e (entget ss1))
  11.          (entmakex (list '(0 . "INSERT")
  12.                          (cons 2 Blkname)
  13.                          (assoc 10 e)
  14.                          '(41 . 1.)
  15.                          '(42 . 1.)
  16.                          '(43 . 1.)
  17.                    )
  18.          )
  19.       )
  20.     )
  21.      -1
  22.    )
  23.    (cond ((or (eq Blkname nil) (eq Blkname ""))
  24.           (princ "\n Cancelled by the user ")
  25.          )
  26.          ((not (tblsearch "BLOCK" Blkname))
  27.           (princ "\n Block name is not found !! ")
  28.          )
  29.          ((not ss) (princ "\n No points selected "))
  30.    )
  31. )
  32. (princ)
  33. )

 
塔瓦特
回复

使用道具 举报

57

主题

243

帖子

190

银币

后起之秀

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

铜币
285
发表于 2022-7-6 09:15:33 | 显示全部楼层
塔尔瓦特,
我测试了你的版本,效果很好。对于初学者来说,这似乎是一个更简洁的代码。我想。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:21:50 | 显示全部楼层
 
谢谢你,我希望你能从中吸取教训。
 
塔瓦特
回复

使用道具 举报

6

主题

249

帖子

247

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 09:27:16 | 显示全部楼层
 
为什么不使用Lee Mac PtManager?http://www.lee-mac.com/ptmanager.html
回复

使用道具 举报

57

主题

243

帖子

190

银币

后起之秀

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

铜币
285
发表于 2022-7-6 09:38:41 | 显示全部楼层
是的,当然,但要慢慢来。lisp语言并不是最直观的。
回复

使用道具 举报

VVA

1

主题

308

帖子

308

银币

初来乍到

Rank: 1

铜币
8
发表于 2022-7-6 09:44:08 | 显示全部楼层
http://www.cadtutor.net/forum/showthread.php?50172-用块替换圆&p=340865&viewfull=1#post340865
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:53:34 | 显示全部楼层
AUGI处的类似螺纹:
http://forums.augi.com/showthread.php?t=133806
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 08:24 , Processed in 0.354777 second(s), 70 queries .

© 2020-2025 乐筑天下

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