MSSmith 发表于 2022-7-6 07:13:32

在绘图中放置网格记号

我正在寻找一种在图形中自动放置网格标记的方法。
 
该程序将允许用户将光标放置在模型视图中的任何位置,在数据点上,它将锁定在250’的网格点上,读取它,显示网格标记的位置,然后允许用户接受并放置带有X、Y坐标的网格标记,或拒绝它,并移动到另一个位置,该过程再次开始。
 
我有一个Microstation“用户命令”可以完成上述操作,但我现在在AutoCad中工作,可以在那里真正使用它。
 
谢谢

irneb 发表于 2022-7-6 07:33:33

嗯,简单地使用Point命令怎么样?您可以通过DSettings命令设置“网格”间距并捕捉到网格(或右键单击状态栏并选择Settings…)。
 
您可能希望将PDMODE转换为更像“网格刻度”的“点”。或者可以使用Insert命令来放置块。要重复相同的命令,请从多个命令开始。然后:如果你使用Point,你只需将鼠标移动到你想要的每个网格上,然后只在那里单击。
 
如果使用insert,则此lisp将以相同的方式工作:
(defun c:InsertMultiple (/ bname)
(if (setq bname (getstring "\nEnter Block name: "))
   (while t (command "._-insert" bname pause "" "" "")))
(princ))

BIGAL 发表于 2022-7-6 07:44:56

还有一点希望你不要介意
 

(defun c:InsertMultiple (/ bname)
(setvar oldsnap "osmode")

(setvar "osmode" 0)
(setvar "Gridunit" "50,50")
(setvar "gridmode" 1)

(if (setq bname (getstring "\nEnter Block name: "))   
(while t (command "._-insert" bname pause "" "" "")))
(setvar "osmode" oldsnap)
(setvar "gridmode" 0)
(princ)

)

irneb 发表于 2022-7-6 07:54:58

别介意!只是我会小心一点。您需要一个*错误*例程,以防用户按Esc键。否则,最终可能会永久关闭OSNAP。

BIGAL 发表于 2022-7-6 08:12:10

是的,我倾向于作弊,不担心错误,除非我真的需要,有osmode filedias等的快速修复。

David Bethel 发表于 2022-7-6 08:22:40

如果需要网格可见,您可能还需要查看限制-大卫
页: [1]
查看完整版本: 在绘图中放置网格记号