乐筑天下

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

[编程交流] 在边缘上打开多段线

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:48:16 | 显示全部楼层
最后,这应处理不同的多段线宽度:
 
  1. [i][color=#990099];; Open Polylines at Selected Edge[/color][/i]
  2. [i][color=#990099];; Copyright © 2009 Lee McDonnell ~ 20.08.2009[/color][/i]
  3. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:PlOpen [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] doc ent Obj pPar pCrds lst Blg i Wid st en[b][color=RED])[/color][/b]
  4. [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
  5. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] doc [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b]
  6.              [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-acad-object[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  7. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ent [b][color=RED]([/color][/b][b][color=BLUE]entsel[/color][/b] [b][color=#ff00ff]"\nSelect LWPolyline: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  8.           [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#ff00ff]"AcDbPolyline"[/color][/b]
  9.             [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ObjectName[/color][/b]
  10.               [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] Obj [b][color=RED]([/color][/b][b][color=BLUE]vlax-ename->vla-object[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] ent[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  11.    [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [color=Blue][b]:vlax-true[/b][/color] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-Closed[/color][/b] Obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b]           
  12.      [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
  13.        [b][color=RED]([/color][/b][b][color=BLUE]vla-StartUndoMark[/color][/b] doc[b][color=RED])[/color][/b]
  14.        [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pPar
  15.          [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b]
  16.            [b][color=RED]([/color][/b][b][color=BLUE]fix[/color][/b]
  17.              [b][color=RED]([/color][/b][b][color=BLUE]vlax-curve-getParamatPoint[/color][/b] Obj
  18.                [b][color=RED]([/color][/b][b][color=BLUE]vlax-curve-getClosestPointto[/color][/b] Obj [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] ent[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  19.        [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pCrds
  20.          [b][color=RED]([/color][/b]vlax-list->2D-point
  21.            [b][color=RED]([/color][/b][b][color=BLUE]vlax-safearray->list[/color][/b]
  22.              [b][color=RED]([/color][/b][b][color=BLUE]vlax-variant-value[/color][/b]
  23.                [b][color=RED]([/color][/b][b][color=BLUE]vla-get-Coordinates[/color][/b] Obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  24.              lst [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]fix[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-curve-getStartParam[/color][/b] Obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] i [b][color=#009900]-1[/color][/b][b][color=RED])[/color][/b]
  25.        [b][color=RED]([/color][/b][b][color=BLUE]repeat[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]1-[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]length[/color][/b] pCrds[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  26.          [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lst [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  27.        [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] Blg
  28.          [b][color=RED]([/color][/b]remake-list
  29.            [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
  30.              [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
  31.                [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b]
  32.                  [b][color=RED]([/color][/b][b][color=BLUE]vla-getBulge[/color][/b] Obj x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  33.              [b][color=RED]([/color][/b][b][color=BLUE]reverse[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  34.            pPar[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  35.        [b][color=RED]([/color][/b][b][color=BLUE]foreach[/color][/b] x [b][color=RED]([/color][/b][b][color=BLUE]reverse[/color][/b] lst[b][color=RED])[/color][/b]
  36.          [b][color=RED]([/color][/b][b][color=BLUE]vla-getWidth[/color][/b] Obj x [b][color=DARKRED]'[/color][/b]st [b][color=DARKRED]'[/color][/b]en[b][color=RED])[/color][/b]
  37.          [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] Wid [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] st en[b][color=RED])[/color][/b] Wid[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  38.        [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] Wid [b][color=RED]([/color][/b]remake-list [b][color=RED]([/color][/b][b][color=BLUE]reverse[/color][/b] Wid[b][color=RED])[/color][/b] pPar[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  39.        [b][color=RED]([/color][/b][b][color=BLUE]vla-put-Coordinates[/color][/b] Obj
  40.          [b][color=RED]([/color][/b][b][color=BLUE]vlax-make-variant[/color][/b]
  41.            [b][color=RED]([/color][/b][b][color=BLUE]vlax-safearray-fill[/color][/b]
  42.              [b][color=RED]([/color][/b][b][color=BLUE]vlax-make-safearray[/color][/b]
  43.                [color=Blue][b]vlax-vbdouble[/b][/color] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]0[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]1-[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]*[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]length[/color][/b] pCrds[b][color=RED])[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  44.              [b][color=RED]([/color][/b][b][color=BLUE]apply[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]append[/color][/b] [b][color=RED]([/color][/b]remake-list pCrds pPar[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  45.        [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
  46.          [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
  47.            [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x y[b][color=RED])[/color][/b]
  48.              [b][color=RED]([/color][/b][b][color=BLUE]vla-setBulge[/color][/b] Obj
  49.                [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] i [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b] i[b][color=RED])[/color][/b][b][color=RED])[/color][/b] x[b][color=RED])[/color][/b]
  50.              [b][color=RED]([/color][/b][b][color=BLUE]vla-SetWidth[/color][/b] Obj i [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] y[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] y[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] Blg Wid[b][color=RED])[/color][/b]               
  51.        [b][color=RED]([/color][/b][b][color=BLUE]vla-put-closed[/color][/b] Obj [b][color=Blue]:vlax-false[/color][color=RED])[/color][/b]
  52.        [b][color=RED]([/color][/b][b][color=BLUE]vla-EndUndoMark[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b]      
  53.      [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n** LWPolyline not Closed **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  54.    [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n** Object Not an LWPolyline **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  55. [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  56. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] vlax-list->2D-point [b][color=RED]([/color][/b]lst[b][color=RED])[/color][/b]
  57. [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] lst
  58.    [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  59.          [b][color=RED]([/color][/b]vlax-list->2D-point [b][color=RED]([/color][/b][b][color=BLUE]cddr[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
  60. [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] Remake-List [b][color=RED]([/color][/b]lst i [b][color=BLUE]/[/color][/b] j k[b][color=RED])[/color][/b]
  61. [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] j [b][color=#009900]-1[/color][/b] k [b][color=#009900]-1[/color][/b][b][color=RED])[/color][/b]
  62. [b][color=RED]([/color][/b][b][color=BLUE]append[/color][/b]
  63.    [b][color=RED]([/color][/b][b][color=BLUE]vl-remove-if[/color][/b]
  64.      [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
  65.        [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b]
  66.          [b][color=RED]([/color][/b][b][color=BLUE]<[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] j [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b] j[b][color=RED])[/color][/b][b][color=RED])[/color][/b] i[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] lst[b][color=RED])[/color][/b]
  67.    [b][color=RED]([/color][/b][b][color=BLUE]vl-remove-if[/color][/b]
  68.      [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
  69.        [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b]
  70.          [b][color=RED]([/color][/b][b][color=BLUE]>=[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] k [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b] k[b][color=RED])[/color][/b][b][color=RED])[/color][/b] i[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
回复

使用道具 举报

13

主题

59

帖子

46

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 12:53:54 | 显示全部楼层
确实如此!非常感谢。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:56:05 | 显示全部楼层
 
没问题-我做得很开心
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:58:28 | 显示全部楼层
我之前没有想过,但是使用这个和只使用trim有什么区别?
拾取柱脚线,拾取柱脚线中的线段。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:01:01 | 显示全部楼层
 
不知道你可以用那种方式修剪
 
我对使用AutoCAD的缺乏经验再次打击了…:眨眼:
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 13:05:14 | 显示全部楼层
我不知道为什么我没有早点考虑。我一看到它张贴在theswamp上,就意识到了这一点。因为这是一个请求,我想我应该发布信息。
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2022-7-6 13:07:31 | 显示全部楼层
你好
 
只是为了好玩。
使用entmod更简洁一些(也适用于打开的多段线)。
 
  1. (defun c:PlOpen (/ pl pt pa l1 l2 l3 cl)
  2. (vl-load-com)
  3. (if (and
  4.        (setq pl (entsel "\nSelect the pline segment: "))
  5.        (setq pt (trans (osnap (cadr pl) "_nea") 1 0))
  6.        (setq pl (car pl))
  7.        (setq el (entget pl))
  8.        (= "LWPOLYLINE" (cdr (assoc 0 el)))
  9.      )
  10.    (progn
  11.      (foreach p el
  12.        (if (member (car p) '(10 40 41 42))
  13.          (setq l2 (cons p l2))
  14.          (setq l1 (cons p l1))
  15.        )
  16.      )
  17.      (setq l2 (reverse l2)
  18.            cl (assoc 70 el)
  19.      )
  20.      (repeat (* 4 (1+ (fix (vlax-curve-getParamAtPoint pl pt))))
  21.        (setq l2 (append (cdr l2) (list (car l2))))
  22.      )
  23.      (entmod (append (subst (cons 70 (Boole 2 (cdr cl) 1)) cl (reverse l1)) l2)
  24.      )
  25.    )
  26. )
  27. (princ)
  28. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:11:33 | 显示全部楼层
嘿,吉尔!
 
很高兴在这些地方见到你-欢迎来到CADTutor
 
我在theSwamp上看到了ElpanoveGeniy的一个类似方法——聪明的东西:眨眼:
回复

使用道具 举报

1

主题

6

帖子

5

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 13:13:40 | 显示全部楼层
如何更改此例程以添加圆弧,而不是使用删除线段
(vla setbulge(vlax ename->vla对象(car(entsel)))0 1)
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2022-7-6 13:19:27 | 显示全部楼层
伦曼茨
 
  1. (setq pl (entsel)
  2.      pt (trans (osnap (cadr pl) "_nea") 1 0)
  3.      pl (car pl)
  4.      pa (fix (vlax-curve-getParamAtPoint pl pt))
  5. )
  6. (vla-setbulge (vlax-ename->vla-object pl) pa 1.0)

 
但这里有一个完整的例程,我写了很多次了
 
  1. ;; CRUV (gile) -Gilles Chanteau-
  2. ;; Transforms a straight polyline segment into a curve one
  3. (defun c:curv (/ *error* pl pt no scu pa p1 p2 bu mid cor loop gr pm fl
  4.           str ce di)
  5. (vl-load-com)
  6. (or *acdoc*
  7.      (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
  8. )
  9. (defun *error* (msg)
  10.    (or    (= msg "Function cancelled")
  11.    (princ (strcat "Error: " msg))
  12.    )
  13.    (vla-SetBulge pl pa bu)
  14.    (and scu
  15.     (vl-cmdf "_.ucs" "_restore" "scuinit")
  16.     (vl-cmdf "_.ucs" "_delete" "scuinit")
  17.    )
  18.    (grtext)
  19.    (redraw)
  20.    (vla-EndUndoMark *acdoc*)
  21. )
  22. (if
  23.    (and
  24.      (setq pl (entsel))
  25.      (setq pt (trans (osnap (cadr pl) "_nea") 1 0))
  26.      (setq no (cdr (assoc 210 (entget (car pl)))))
  27.      (setq pl (vlax-ename->vla-object (car pl)))
  28.      (= (vla-get-ObjectName pl) "AcDbPolyline")
  29.    )
  30.     (progn
  31.       (vla-StartUndoMark *acdoc*)
  32.       (if (not
  33.         (and (equal '(0 0 1)
  34.             (trans '(0 0 1) no 1 T)
  35.             1e-9
  36.          )
  37.          (equal 0.0 (vla-get-elevation pl) 1e-9)
  38.         )
  39.       )
  40.     (and
  41.       (vl-cmdf "_.ucs" "_save" "scuinit")
  42.       (setq scu T)
  43.       (vl-cmdf "_.ucs" "_object" (vlax-vla-object->ename pl))
  44.     )
  45.       )
  46.       (setq pa      (fix (vlax-curve-getParamAtPoint pl pt))
  47.         p1      (trans (vlax-curve-getPointatParam pl pa) 0 no)
  48.         p2      (trans (vlax-curve-getPointatParam pl (1+ pa)) 0 no)
  49.         bu      (vla-GetBulge pl pa)
  50.         mid  (mapcar '(lambda (x1 x2) (/ (+ x1 x2) 2.0)) p1 p2)
  51.         cor  (distance mid p1)
  52.         loop T
  53.       )
  54.       (princ "\nSpecify the height (sagitta) or [Center/Direction]: ")
  55.       (while (and (setq gr (grread T 12 0)) (/= (car gr) 3) loop)
  56.     (cond
  57.       ((= (car gr) 5)
  58.        (redraw)
  59.        (setq pm (trans (cadr gr) 1 no)
  60.          fl (distance mid pm)
  61.        )
  62.        (and (< (sin (- (angle p1 p2) (angle p1 pm))) -1e-14)
  63.         (setq fl (- fl))
  64.        )
  65.        (vla-setBulge
  66.          pl
  67.          pa
  68.          ((lambda (a) (/ (sin a) (cos a)))
  69.        (/ (- (angle p2 pm) (angle pm p1)) 2.0)
  70.          )
  71.        )
  72.        (grdraw (trans mid no 1)
  73.            (trans (vlax-curve-getPointAtParam pl (+ pa 0.5)) 0 1)
  74.            -1
  75.            1
  76.        )
  77.        (grtext -1 (strcat "Height = " (rtos fl)))
  78.       )
  79.       ((member (cadr gr) '(13 32))
  80.        (cond
  81.          ((and str (numberp (read str)))
  82.           (vla-setBulge pl pa (/ (read str) cor))
  83.           (setq loop nil)
  84.          )
  85.          ((and str (member (strcase str) '("C" "D")))
  86.           (setq loop nil)
  87.           (cond
  88.         ((= (strcase str) "C")
  89.          (while
  90.            (not (and
  91.               (setq
  92.                 ce
  93.                  (trans (getpoint "\nSpecify le center: ")
  94.                     1
  95.                     no
  96.                  )
  97.               )
  98.               (equal (distance ce p1) (distance ce p2) 1e-9)
  99.             )
  100.            )
  101.             (princ
  102.                       "\nThe specified point can't be the arc center"
  103.             )
  104.          )
  105.          (vla-SetBulge
  106.            pl
  107.            pa
  108.            (/ (- (distance ce p1) (distance ce mid))
  109.               (if
  110.             (< (sin (- (angle p1 p2) (angle p1 ce))) -1e-14)
  111.              (distance p1 mid)
  112.              (- (distance p1 mid))
  113.               )
  114.            )
  115.          )
  116.          (initget "Yes No")
  117.          (if
  118.            (=
  119.              "Yes"
  120.              (getkword
  121.            "\nDraw the complementary arc ? [Yes/No] <No>: "
  122.              )
  123.            )
  124.             (vla-SetBulge
  125.               pl
  126.               pa
  127.               (/ (+ (distance ce p1) (distance ce mid))
  128.              (if (< (sin (- (angle p1 p2) (angle p1 ce)))
  129.                 -1e-14
  130.                  )
  131.                (- cor)
  132.                cor
  133.              )
  134.               )
  135.             )
  136.          )
  137.         )
  138.         ((= (strcase str) "D")
  139.          (while
  140.            (not (setq di (getpoint (trans p1 no 1)
  141.                        "\nSpecify the direction: "
  142.                  )
  143.             )
  144.            )
  145.          )
  146.          ((lambda (a)
  147.             (vla-SetBulge pl pa (/ (sin a) (cos a)))
  148.           )
  149.            (/ (- (angle p1 p2) (angle p1 (trans di 1 no))) 2.0)
  150.          )
  151.         )
  152.           )
  153.          )
  154.          (T
  155.           (princ
  156.                 "\nNeeds a number, a valid option or a cursor input.
  157.                 \nSpecify the height (sagitta) or [Center/Direction]: "
  158.           )
  159.           (setq str "")
  160.          )
  161.        )
  162.       )
  163.       (T
  164.        (if    (= (cadr gr)
  165.          (or
  166.        (and str
  167.             (/= str "")
  168.             (setq str (substr str 1 (1- (strlen str))))
  169.             (princ (chr )
  170.             (princ (chr 32))
  171.        )
  172.        (setq str nil)
  173.          )
  174.          (or
  175.        (and str (setq str (strcat str (chr (cadr gr)))))
  176.        (setq str (chr (cadr gr)))
  177.          )
  178.        )
  179.        (and str (princ (chr (cadr gr))))
  180.       )
  181.     )
  182.       )
  183.       (and scu
  184.        (vl-cmdf "_.ucs" "_restore" "scuinit")
  185.        (vl-cmdf "_.ucs" "_delete" "scuinit")
  186.       )
  187.       (grtext)
  188.       (redraw)
  189.       (vla-EndUndoMark *acdoc*)
  190.     )
  191. )
  192. (princ)
  193. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 06:19 , Processed in 0.985662 second(s), 70 queries .

© 2020-2025 乐筑天下

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