乐筑天下

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

[编程交流] Lisp修改

[复制链接]

4

主题

15

帖子

11

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 13:19:14 | 显示全部楼层 |阅读模式
大家好,
 
我有一个例程,围绕路径对齐块,增加属性。但是我已经在块中添加了一些运动参数,例程不会将其复制到块中。我正在附加代码和块。
 
有人能帮我吗?
 
谢谢
  1. ;; el primer bloque debe estar ya colocado en el punto medio del eje
  2. (defun c:pagbloc2 (/ _padzeros _insblock b dn se d n lnum inc bn xyz d1)
  3. (defun _padzeros ( s l)
  4.         (if (< (strlen s) l) (_padzeros (strcat "0" s) l) s)
  5.     )
  6. (defun _insblock (e ds bnm data i il  / pt p_ang)
  7.         (setq pt (vlax-curve-getpointatdist e ds))
  8.         (setq p_ang (angle '(0.0 0.0 0.0) (vlax-curve-getfirstderiv se (vlax-curve-getparamatpoint e pt))))
  9.         (setq part (vlax-invoke
  10.                            (vlax-get
  11.                                  (vla-get-ActiveLayout
  12.                                        (vla-get-activedocument
  13.                                              (vlax-get-acad-object)))
  14.                                  'Block)
  15.                            'InsertBlock pt bnm
  16.                            (car data)(cadr data)(caddr data)
  17.                     p_ang))
  18.           (foreach att (vlax-invoke part 'getattributes) (vla-put-textstring att
  19.         (_padzeros (itoa i) il)))
  20.   )
  21.   (if (and               
  22.         (setq b (car (entsel "\nSelect block")))
  23.         (setq dn (getreal "\n Enter distance :"))
  24.         (setq se (car (entsel "\nSelect path")))
  25.       )
  26.         (progn
  27.           (setq d  (vlax-curve-getdistatparam se (vlax-curve-getendparam se)))
  28.           (setq n  (fix (/ d dn)))
  29.           (setq lnum (strlen (itoa n)) num 1)
  30.           (setq inc dn)
  31.           (setq bn (cdr (assoc 2 (setq bdata (entget b)))))
  32.           (setq xyz (mapcar '(lambda (s)
  33.                                (cdr (assoc s bdata))) '( 41 42 43 8 10)))
  34.           (setvar 'clayer (cadddr xyz))
  35.           (setq d1 (vlax-curve-getdistatpoint se (vlax-curve-getclosestpointto  se (last xyz))))
  36.           
  37.          (_insblock se (Setq inc (+ inc d1)) bn xyz (setq num (1+ num)) 2)
  38.          
  39.         (repeat (1- n)
  40.           (_insblock se (Setq inc (+ inc dn)) bn xyz (setq num (1+ num)) 2)
  41.           
  42.         )
  43.       )      
  44.     )
  45.   (princ)
  46. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-15 07:26 , Processed in 0.406550 second(s), 56 queries .

© 2020-2025 乐筑天下

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