kylesom 发表于 2022-7-6 06:22:16

简单lisp例程帮助-Mea

大家好。
 
我试着为一个重复的过程组装一个autolisp,这个过程将给我们的办公室带来麻烦,但在这个阶段我只是不知道如何让它工作。
 
我们基本上需要使用“measure”命令在(许多)多条多段线上每隔20m插入一个块。
 
有人能建议或给出这样做的示例代码吗?
 
基本上选择measure命令,允许我选择多段线(或者选择多条多段线,那会更好!),选择块选项,输入块名称(现在称为Block1),确认Y与多段线对齐,然后自动指定20m间隔。
 
感谢您的帮助!

Tharwat 发表于 2022-7-6 06:27:51

看看这个,伙计。
 
(defun c:TesT (/ blk ss l name)
; TharwaT 04. 04. 2011
(if
   (and (setq blk (entsel "\n Select Block :"))
      (setq ss (ssget "_:L" '((0 . "LINE,SPLINE,LWPOLYLINE,POLYLINE"))))
      (setq l (getdist "\n Distance between Blocks :"))
   )
    (progn
      (setq name (cdr (assoc 2 (entget (car blk)))))
      ((lambda (i / ss1)
         (while
         (setq ss1 (ssname ss (setq i (1+ i))))
            (command "_.measure" ss1 "Block" name "_Y" l)
         )
       )
      -1
      )
    )
    (princ)
)
(princ)
)

 
塔瓦特

kylesom 发表于 2022-7-6 06:29:21

完美的非常感谢

Tharwat 发表于 2022-7-6 06:34:44

不客气,凯尔森。
 
塔瓦特

stevesfr 发表于 2022-7-6 06:35:46

 
这太棒了!如何进行修改以在插入选定块时更改其比例?
谢谢Steveo

Tharwat 发表于 2022-7-6 06:39:09

 
非常感谢。
 
我猜你不能缩放将沿所选线分布的块,因为命令度量将
按块的名称而不是选定对象插入块。
 
也许有人会对这个事实提出异议。
 
塔瓦特

alanjt 发表于 2022-7-6 06:42:17

在测量每个对象之前,您需要使用vlax curve getPointAtDist(请参阅我的CopyAlongCurve.LSP)滚动自己的对象,或存储最后一个实体(entlast),然后在测量完曲线后,使用entnext选择每个新创建的对象(块)并根据最初选择的块的比例特性重新缩放。

fixo 发表于 2022-7-6 06:47:36

史蒂夫
试试这个稍微编辑过的代码

(defun c:TesT2 (/ blk ss l name)
; TharwaT 04. 04. 2011
(if
(and (setq blk (entsel "\n Select Block :"))
(setq ss (ssget "_:L" '((0 . "LINE,SPLINE,LWPOLYLINE,POLYLINE"))))
(setq l (getdist "\n Distance between Blocks :"))
(setq scl (getdist "\n Enter a scale :"))   
)
(progn
(setq name (cdr (assoc 2 (entget (car blk)))))
((lambda (i / ss1)
(while
(setq ss1 (ssname ss (setq i (1+ i))))
(setq marker(entlast))
(command "_.measure" ss1 "Block" name "_Y" l)
(while (setq en (entnext marker))
(setq elist (entget en)
pt (cdr (assoc 10 elist)))
(command "_scale" en "" "_non" pt scl)
(princ (cdr (assoc 2 elist)))
(entupd en)
(setq marker en)
)
)
)
-1
)
)
(princ)
)
(princ)
)

 
~'J'~

stevesfr 发表于 2022-7-6 06:50:50

 
fixo!!!你做到了!!谢谢,史蒂夫

fixo 发表于 2022-7-6 06:51:44

史提夫,
不客气
但多亏了塔瓦
干杯,朋友
 
奥列格
页: [1] 2
查看完整版本: 简单lisp例程帮助-Mea